android - 安卓开发webview无法运行<input type="file"怎么破?
问题描述
求解!安卓webview无法运行<input type='file' name='file' /> 标签!HTML完整代码:<html><body>
<form action='upload_file.php' method='post'enctype='multipart/form-data'><label for='file'>Filename:</label><input type='file' name='file' /> <input type='submit' name='submit' value='Submit' /></form>
</body></html>在线等!!!
问题解答
回答1:这个已经有人问过了,我已经回答过了,亲测完全没问题。https://segmentfault.com/q/1010000005980836
回答2:Github上有个Os-FileUp项目提供了一些方法.
webView.setWebChromeClient(new WebChromeClient(){ //For Android 3.0+ public void openFileChooser(ValueCallback<Uri> uploadMsg){mUM = uploadMsg;Intent i = new Intent(Intent.ACTION_GET_CONTENT);i.addCategory(Intent.CATEGORY_OPENABLE);i.setType('image/*');MainActivity.this.startActivityForResult(Intent.createChooser(i,'File Chooser'), FCR); } // For Android 3.0+, above method not supported in some android 3+ versions, in such case we use this public void openFileChooser(ValueCallback uploadMsg, String acceptType){mUM = uploadMsg;Intent i = new Intent(Intent.ACTION_GET_CONTENT);i.addCategory(Intent.CATEGORY_OPENABLE);i.setType('*/*');MainActivity.this.startActivityForResult(Intent.createChooser(i, 'File Browser'),FCR); } //For Android 4.1+ public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture){mUM = uploadMsg;Intent i = new Intent(Intent.ACTION_GET_CONTENT);i.addCategory(Intent.CATEGORY_OPENABLE);i.setType('image/*');MainActivity.this.startActivityForResult(Intent.createChooser(i, 'File Chooser'), MainActivity.FCR); } //For Android 5.0+ public boolean onShowFileChooser( WebView webView, ValueCallback<Uri[]> filePathCallback, WebChromeClient.FileChooserParams fileChooserParams){if(mUMA != null){ mUMA.onReceiveValue(null);}mUMA = filePathCallback;Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);if(takePictureIntent.resolveActivity(MainActivity.this.getPackageManager()) != null){ File photoFile = null; try{photoFile = createImageFile();takePictureIntent.putExtra('PhotoPath', mCM); }catch(IOException ex){Log.e(TAG, 'Image file creation failed', ex); } if(photoFile != null){mCM = 'file:' + photoFile.getAbsolutePath();takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile)); }else{takePictureIntent = null; }}Intent contentSelectionIntent = new Intent(Intent.ACTION_GET_CONTENT);contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE);contentSelectionIntent.setType('image/*');Intent[] intentArray;if(takePictureIntent != null){ intentArray = new Intent[]{takePictureIntent};}else{ intentArray = new Intent[0];}Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER);chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent);chooserIntent.putExtra(Intent.EXTRA_TITLE, 'Image Chooser');chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);startActivityForResult(chooserIntent, FCR);return true; }});}
相关文章:
1. javascript - 一排三个框,各个框的间距是15px,距离外面的白框间距也是15px,这个css怎么写?2. javascript - nodejs调用qiniu的第三方资源抓取,返回401 bad token,为什么3. html5 - javascript写业务有用到什么编程范式没?4. javascript - vue 手机端项目在进入主页后 在进入子页面,直接按返回出现空白情况5. javascript - 如何利用vue组件 动态生成router-link6. html5 - vue-cli 装好了 新建项目的好了,找不到项目是怎么回事?7. css3 - 微信前端页面遇到的transition过渡动画的bug8. javascript - jQuery post()方法,里面的请求串可以转换为GBK编码么?可以的话怎样转换?9. python3.x - python 中的maketrans在utf-8文件中该怎么使用10. mysql - C#连接数据库时一直这一句出问题int i = cmd.ExecuteNonQuery();

网公网安备