gpt4 book ai didi

android - 处理文件选择器 android WebViews

转载 作者:行者123 更新时间:2023-12-03 08:41:34 28 4
gpt4 key购买 nike

image

我有一个问题。我有一个 webView 应用程序。应用程序内部有一个按钮,允许用户从设备中选择文件并上传到 api。一切都通过网络处理。问题是,在 webView 应用程序上,点击按钮时,没有任何反应,但是,当我尝试使用 Chrome 浏览器或浏览器应用程序时,它运行良好。

我需要做什么才能确保它与 Chrome 浏览器的工作方式相同?我不想在本地处理此功能,因为这是我在网上看到的唯一解决方案。无论如何,我尝试这样做,但它不会像 this image 那样弹出那些文件选项。

有没有更简单的方法来处理这个问题?

最佳答案

试试这个:

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)
<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3b4f5352487b765a52557a584f524d524f42155d52575e6b5a4f53785a5757595a5850" rel="noreferrer noopener nofollow">[email protected]</a> = 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
}
}
}
}

关于android - 处理文件选择器 android WebViews,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62625705/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com