猿问

WebView中的文件上传

WebView中的文件上传

我一直在努力上传文件从WebView从过去几天,没有任何进展。我搜索并实现了所有建议的解决方案,但都没有效果,比如:建议的解决方案。这里等等。

问题:我有一个HTML页面,上面有下面的代码来上传一个文件。它在像Firefox这样的桌面浏览器和内置仿真器/AVD浏览器中工作得很好,也就是说,当我单击“Browse.”按钮由元素呈现,浏览器打开一个对话框,我可以选择一个文件上传。

但是,在Android3.0模拟器/AVD中,当我单击“选择文件”时,什么都不会发生,没有打开任何文件对话框!

<form method="POST" enctype="multipart/form-data">File to upload: <input type="file" name="uploadfile">&nbsp;&nbsp;
<input type="submit" value="Press to Upload..."> to upload the file!</form>

有谁能尽快提出一个可行的解决方案吗?


慕森王
浏览 633回答 3
3回答

湖上湖

这是我找到的唯一可行的解决方案!WebView&nbsp;webview;private&nbsp;ValueCallback<Uri>&nbsp;mUploadMessage;private&nbsp;final&nbsp;static&nbsp;int&nbsp;FILECHOOSER_RESULTCODE&nbsp;=&nbsp;1; @Overrideprotected&nbsp;void&nbsp;onActivityResult(int&nbsp;requestCode,&nbsp;int&nbsp;resultCode, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Intent&nbsp;intent)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(requestCode&nbsp;==&nbsp;FILECHOOSER_RESULTCODE)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(null&nbsp;==&nbsp;mUploadMessage) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uri&nbsp;result&nbsp;=&nbsp;intent&nbsp;==&nbsp;null&nbsp;||&nbsp;resultCode&nbsp;!=&nbsp;RESULT_OK&nbsp;?&nbsp;null &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;intent.getData(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mUploadMessage.onReceiveValue(result); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mUploadMessage&nbsp;=&nbsp;null; &nbsp;&nbsp;&nbsp;&nbsp;}}//&nbsp;Next&nbsp;part&nbsp;class&nbsp;MyWebChromeClient&nbsp;extends&nbsp;WebChromeClient&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;The&nbsp;undocumented&nbsp;magic&nbsp;method&nbsp;override &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Eclipse&nbsp;will&nbsp;swear&nbsp;at&nbsp;you&nbsp;if&nbsp;you&nbsp;try&nbsp;to&nbsp;put&nbsp;@Override&nbsp;here &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;openFileChooser(ValueCallback<Uri>&nbsp;uploadMsg)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mUploadMessage&nbsp;=&nbsp;uploadMsg; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Intent&nbsp;i&nbsp;=&nbsp;new&nbsp;Intent(Intent.ACTION_GET_CONTENT); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i.addCategory(Intent.CATEGORY_OPENABLE); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i.setType("image/*"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cv5appActivity.this.startActivityForResult( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Intent.createChooser(i,&nbsp;"Image&nbsp;Browser"), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FILECHOOSER_RESULTCODE); &nbsp;&nbsp;&nbsp;&nbsp;}}
随时随地看视频慕课网APP

相关分类

Android
我要回答