Webview:无法读取未定义的属性“hasOwnProperty”

时间:2021-02-08 19:56:52

标签: javascript android reactjs webview android-webview

我们正在尝试在我们的 Android 应用程序的 WebView 中加载一个 React 网站。一个现有的答案说尝试加载反应网站 https://ahfarmer.github.io/calculator/ 作为检查 WebView 是否正确配置的良好开端。 当我们在 WebView 中加载这个网站时,我们得到这个错误,

index.js:10 Uncaught TypeError: Cannot read property 'hasOwnProperty' of undefined
    at Object.<anonymous> (index.js:10)
    at t (bootstrap 0d2f05a4c57a0e5e8e16:19)
    ...

正如大多数答案所暗示的那样,我们在 WebView 设置中启用了 DOM 存储和 JS。 代码是用 Kotlin 编写的。此函数加载 webview 中传递的 url。

@SuppressLint("SetJavaScriptEnabled")
    private fun loadUrl() {
        if (0 != applicationInfo.flags and ApplicationInfo.FLAG_DEBUGGABLE) {
            WebView.setWebContentsDebuggingEnabled(true)
        }

        webView.webChromeClient = object : WebChromeClient() {
            override fun onProgressChanged(view: WebView, progress: Int) {
                if (progress == 100)
                    this@MainActivity.progressBar.visibility = View.GONE
            }
        }
        webView.webViewClient = object : WebViewClient() {
            override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
                view.loadUrl(url)
                return true
            }

            override fun onPageFinished(view: WebView?, url: String?) {
                super.onPageFinished(view, url)
                webView.loadUrl("javascript:callFromAndroid('$data')")
            }
        }
        webView.settings.javaScriptEnabled = true
        webView.settings.domStorageEnabled = true
        val appInterface = AppInterface(this)
        webView.addJavascriptInterface(appInterface, "Object")
        webView.loadUrl(url)
    } 

该网站是用 create-react-app 构建的,在浏览器中加载得很好,但是当加载到 Webview 中时,构建 React 应用程序时生成的块文件会出错。

<块引用>

在 webView 中加载时,我们在自己的 React 应用程序的块文件中面临相同的错误和更多错误。在浏览器中完美运行。

是使用 create-react-app 构建的问题还是我们在 WebView 代码中遗漏了什么?

需要帮助!!!

0 个答案:

没有答案