【发布时间】:2021-03-08 03:04:25
【问题描述】:
当我选择 webview 的文件输入时,会打开一个底部工作表对话框。 在此对话框中,我有 2 个选项可供选择。
从设备文件中选择或使用相机为文档拍照。 (我仍在构建相机功能)
webView.webChromeClient = object : WebChromeClient() {
//THIS HANDLES THE CLICK FOR THE FILE INPUT BUTTON
override fun onShowFileChooser(mWebView: WebView, filePathCallback: ValueCallback<Array<Uri>>, fileChooserParams: FileChooserParams): Boolean {
bottomSheetDialog.show()
var theReturn = false
view.from_files.setOnClickListener{
// HANDLE THE FILE SELECT
// ###############################################################
if (uploadMessage != null) {
uploadMessage!!.onReceiveValue(null)
uploadMessage = null
}
uploadMessage = filePathCallback
var intent: Intent? = null
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
intent = fileChooserParams.createIntent()
theReturn = true
}
try {
startActivityForResult(intent, REQUEST_SELECT_FILE)
} catch (e: ActivityNotFoundException) {
uploadMessage = null
theReturn = false
}
bottomSheetDialog.dismiss()
}
// ===
view.from_camera.setOnClickListener{
bottomSheetDialog.dismiss()
Toast.makeText(applicationContext, "In the camera", Toast.LENGTH_SHORT).show()
theReturn = false
}
return theReturn
}
}
onShowFileChooser 函数需要返回 true 或 false。当单击文件输入元素并选择相机选项时,该功能似乎起作用,此时仅显示一个 Toast。
当我单击文件功能时,我可以导航并选择一个文件,然后应用程序崩溃。 这部分似乎没有传递真正的值。
我在这里做错了,只是无法弄清楚它可能是什么。
提前感谢您的帮助
【问题讨论】:
标签: android kotlin file-upload webview