如何处理 web 视图中的 geo: 链接

发布于 2024-11-14 03:08:33 字数 889 浏览 1 评论 0原文

当点击浏览器中的地址时,它将打开该地址的地图视图。

如何设置 shouldOverrideUrlLoading 来处理 WebView 中的这些链接?我已经设置了“tel:”和“mailto:”链接的处理,但无法弄清楚如何处理“geo:”链接。

我的 shouldOverrideUrlLoading:

public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url.startsWith("tel:")) {
            startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(url)));
            return true;
        } else if (url.startsWith("mailto:")) {
            url = url.replaceFirst("mailto:", "");
            url = url.trim();
            Intent i = new Intent(Intent.ACTION_SEND);
            i.setType("plain/text").putExtra(Intent.EXTRA_EMAIL, new String[]{url});
            startActivity(i);
            return true;
        } else if (url.startsWith("geo:")) {
            return true;
        } else {
            view.loadUrl(url);
            return true;
        }
    }

When clinking on an address in the browser, it will open a map view for the address.

How do I set shouldOverrideUrlLoading to handle these links in a WebView? I have setup handling of "tel:" and "mailto:" links, but can't figure out how to handle "geo:" links.

My shouldOverrideUrlLoading:

public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url.startsWith("tel:")) {
            startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(url)));
            return true;
        } else if (url.startsWith("mailto:")) {
            url = url.replaceFirst("mailto:", "");
            url = url.trim();
            Intent i = new Intent(Intent.ACTION_SEND);
            i.setType("plain/text").putExtra(Intent.EXTRA_EMAIL, new String[]{url});
            startActivity(i);
            return true;
        } else if (url.startsWith("geo:")) {
            return true;
        } else {
            view.loadUrl(url);
            return true;
        }
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

纵山崖 2024-11-21 03:08:33

我也遇到了同样的问题。我通过查看这个问题将其拼凑在一起:

关于地理的问题:

要添加到您的代码如下...顺便说一句,您帮助我解决了电话:问题!谢谢!

else if (url.startsWith("geo:")) {
        Intent searchAddress = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
        startActivity(searchAddress); 
}

I was having the same problem. I pieced it together by looking at this question:

Question on geo:

the code to add to yours is below... btw, you helped me solve the tel: issue! thx!

else if (url.startsWith("geo:")) {
        Intent searchAddress = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
        startActivity(searchAddress); 
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文