使用 webview 打开地图 url 的问题

Issue with maps url opening with webview

我正在使用 WebView 打开地图 url(我使用 Google 地图与对话框共享)。

val webView = findViewById<WebView>(R.id.webview)
val webSettings: WebSettings = webView.settings
webSettings.javaScriptEnabled = true
webView.webViewClient = WebViewClient()
val url = "https://maps.app.goo.gl/ei5DupR88SYBF8Am8"
webView.loadUrl(url)

但是 url 没有像其他 url 一样打开。

看起来,“https://”被替换为“intent://”,WebView 无法打开无效url。

知道为什么会发生这种情况以及如何避免这种情况吗?

我通过覆盖“shouldOverrideUrlLoading”解决了这个问题:

companion object {
    const val FALLBACK_URL = "browser_fallback_url="
}


webView.webViewClient = object: WebViewClient() {
    override fun shouldOverrideUrlLoading(webView: WebView?, request: WebResourceRequest):
            Boolean {

        val url = request.url
        val urlString = url.toString()
        val fallbackUrl = urlString.subSequence(
                urlString.indexOf(FALLBACK_URL) + FALLBACK_URL.length,
                urlString.length)
                .toString()
        webView.loadUrl(URLDecoder.decode(fallbackUrl, "UTF-8"))
        return true
    }
}