Как я могу загрузить некоторые внутренние ссылки в моем веб-браузере в моем браузере по клику? - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть веб-просмотр, в котором у меня есть определенные ссылки в веб-просмотре, которые открываются в веб-обзоре вместо браузера.Я добавил webView.settings.setSupportMultipleWindows(true) в свой код, который вообще не позволяет ссылкам открываться. Мне было интересно, есть ли способ открыть любые статические ссылки в веб-обозревателе в браузере одним щелчком мыши.Есть идеи?Мой код ниже:

 webView.settings.javaScriptEnabled = true
        webView.settings.javaScriptCanOpenWindowsAutomatically = true
        webView.settings.setAppCacheEnabled(true)
        webView.settings.setAppCachePath(context?.cacheDir?.absolutePath)
        webView.settings.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK
        webView.settings.allowFileAccess = true
        webView.settings.allowContentAccess = true
        webView.settings.allowFileAccessFromFileURLs = true
        webView.settings.allowUniversalAccessFromFileURLs = true
        webView.settings.domStorageEnabled = true
        webView.settings.setSupportMultipleWindows(true)

        webView.webChromeClient = WebChromeClient()
        webView.webViewClient = object : WebViewClient() {
            override fun onPageFinished(view: WebView?, url: String?) {
                super.onPageFinished(view, url)
            }

            override fun onReceivedError(view: WebView?, request: WebResourceRequest?, error: WebResourceError?) {
                super.onReceivedError(view, request, error)
            }

            override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {
                if (request?.url?.toString()?.startsWith("mailto:") == true) {
                    val intent = Intent(Intent.ACTION_VIEW, request.url)
                    startActivity(intent)
                    return true
                }
                if (request?.url?.toString()?.startsWith("tel:") == true) {
                    startActivity(Intent(Intent.ACTION_DIAL, request.url))
                    return true
                }

                return super.shouldOverrideUrlLoading(view, request)
            }
        }

        // Empty cache case
        if (!accessibilityService.isOnline) {
            showErrorMessage(R.string.error_no_network_connection)
        }

        webView.loadUrl(urlToOpen)
        webView.setOnKeyListener(object : View.OnKeyListener {

            override fun onKey(v: View, keyCode: Int, event: KeyEvent): Boolean {
                if (keyCode == KeyEvent.KEYCODE_BACK
                        && event.action === MotionEvent.ACTION_UP
                        && webView.canGoBack()) {
                    webView.goBack()
                    return true
                }

                return false
            }

        })
        toolbar.title = toolbarTitle
        toolbar.setNavigationIcon(R.drawable.ic_transparent)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...