【问题标题】:Android Studio Kotlin webview app crashing when selecting an image after selecting the option from a sheet dialog从工作表对话框中选择选项后选择图像时,Android Studio Kotlin webview 应用程序崩溃
【发布时间】: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


    【解决方案1】:

    您的变量似乎需要声明为全局变量。如果我理解您的代码,则每次重新创建 web 视图时,theReturn 值都会被初始化为 false。

    【讨论】:

    • 感谢您的回复,不幸的是,我在声明为全局变量时遇到了同样的崩溃
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    相关资源
    最近更新 更多