Android Webview不会在移动应用程序中加载URL

时间:2019-01-31 06:38:05

标签: javascript android webview

我正在尝试在android应用程序webview中加载一个url,但是失败了,我不知道确切的问题是什么。 onPageStared()和调用的方法,onReceiveError方法未调用,onPageFinished方法也被调用。以下是我的代码-

@SuppressLint("SetJavaScriptEnabled")
    private fun setupWebView() {
        webviewViewModel.loadingVisibility.value = View.VISIBLE
        val webView = binding.webView
        webView.settings.javaScriptEnabled = true
        webView.settings.loadWithOverviewMode = true
        webView.settings.useWideViewPort = true
        webView.webViewClient = object : WebViewClient() {

            override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {

                view?.loadUrl(webviewViewModel.url)
                return true
            }

            override fun onPageFinished(view: WebView?, url: String?) {
                webviewViewModel.loadingVisibility.value = View.GONE
            }
        }
        webView.loadUrl(webviewViewModel.url)
    }

我正在使用的URL是-http://192.168.10.22:4200/bigday/terms-and-conditions

帮我解决我所缺少的东西。

1 个答案:

答案 0 :(得分:0)

搜索2-3天后,我通过添加

获得了解决方案

webView.settings.domStorageEnabled = true

@SuppressLint("SetJavaScriptEnabled")
    private fun setupWebView() {
        webviewViewModel.loadingVisibility.value = View.VISIBLE
        val webView = binding.webView
        webView.settings.javaScriptEnabled = true
        webView.settings.javaScriptCanOpenWindowsAutomatically = true
        webView.settings.domStorageEnabled = true
        webView.settings.loadWithOverviewMode = true
        webView.settings.useWideViewPort = true
        webView.settings.allowContentAccess = true
        webView.webChromeClient = WebChromeClient()
        webView.webViewClient = object : WebViewClient() {

            override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {

                view?.loadUrl(webviewViewModel.url)
                return true
            }

            override fun onPageFinished(view: WebView?, url: String?) {
                webviewViewModel.loadingVisibility.value = View.GONE
            }
        }
        webView.loadUrl(webviewViewModel.url)
    }