我有一个问题,伙计们。我有一个webView应用程序。应用程序内部有一个按钮,允许用户从设备中选择文件并上传到 api。一切都通过网络处理。问题是,在webView应用程序上,点击按钮时,没有任何反应,但是,当我尝试使用 Chrome 浏览器或浏览器应用程序时,它运行良好。
我需要做什么才能确保它与 Chrome 浏览器的工作方式相同?我不想在本地处理此功能,因为这是我在网上看到的唯一解决方案。无论如何,我尝试这样做,但它不会弹出这些文件选项,如图所示
有没有更简单的方法来处理这个问题?
小智 6
尝试这个:
private var filePathCallback: ValueCallback<Array<Uri>>? = null
override fun onCreate(savedInstanceState: Bundle?) {
webView.webChromeClient = object: WebChromeClient() {
override fun onShowFileChooser(webView: WebView?, filePathCallback: ValueCallback<Array<Uri>>?, fileChooserParams: FileChooserParams?): Boolean {
startActivityForResult(fileChooserParams?.createIntent(), CHOOSE_FILE_REQUEST_CODE)
this@MainActivity.filePathCallback = filePathCallback
return true
}
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (requestCode) {
CHOOSE_FILE_REQUEST_CODE -> {
if (resultCode == Activity.RESULT_OK) {
filePathCallback?.onReceiveValue(WebChromeClient.FileChooserParams.parseResult(resultCode, data))
filePathCallback = null
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3852 次 |
| 最近记录: |