Обработка нескольких вкладок в Android WebView - PullRequest
0 голосов
/ 24 ноября 2018

Я создаю приложение для браузера Android, я хочу обработать щелчок по ссылке, у которого target = '_ blank', которая откроется в новой вкладке в обычных браузерах.

Есть вызов метода onCreateWindowв WebChromeClient, которая срабатывает при нажатии на ссылку _blank.Но мой вопрос, как я могу получить ссылку URL?следующий код просто возвращает текущий URL

override fun onCreateWindow(view: WebView?, isDialog: Boolean, isUserGesture: Boolean, resultMsg: Message?): Boolean {
    Toast.makeText(context, view?.url, Toast.LENGTH_LONG).show()
    return super.onCreateWindow(view, isDialog, isUserGesture, resultMsg)
}

1 Ответ

0 голосов
/ 28 ноября 2018

Наконец, я нашел способ захвата URL ссылки.

@SuppressLint("SetJavaScriptEnabled")
override fun onCreateWindow(view: WebView?, isDialog: Boolean, isUserGesture: Boolean, resultMsg: Message?): Boolean {
    val newWebView = WebView(context)
    addView(context, newWebView)
    val transport = resultMsg?.obj as WebView.WebViewTransport
    transport.webView = newWebView

    val settings = newWebView.getSettings()
    settings.javaScriptEnabled = true
    settings.javaScriptCanOpenWindowsAutomatically = true
    settings.setSupportMultipleWindows(true)
    settings.useWideViewPort = false
    newWebView.webViewClient = object : WebViewClient() {
        override fun onPageFinished(view: WebView?, url: String?) {
            super.onPageFinished(view, url)
        }

        override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
            Toast.makeText(context, url, Toast.LENGTH_LONG).show()
            super.onPageStarted(view, url, favicon)
        }
    }
    resultMsg.sendToTarget()

    return true
}

Создав новый веб и добавив его в WebViewTransport, вы можете добавить новый WebViewClient к этому новому WebView, тогда этот URL легко получить с помощью метода onPageStarted.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...