【问题标题】:How to Open Google Maps from Webview click如何从 Webview 点击打开谷歌地图
【发布时间】:2020-06-21 04:32:38
【问题描述】:

我有一个带有 web 视图的应用程序。 webview 链接到所有链接都正常工作的移动网页。当我单击此 web 视图中的链接时,该链接会在 web 视图内的谷歌地图中打开。相反,我希望该链接能够打开原生谷歌地图应用程序。谁能告诉我该怎么做?网上几乎没有关于它的内容。谢谢!

编辑:基于 Matiash 的回复。这是我添加的代码:

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (Uri.parse(url).getHost().equals("www.MYURL.com")) {
                return false;
            }

            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
            startActivity(intent);
            return true;
        }

【问题讨论】:

    标签: android google-maps webview


    【解决方案1】:

    您应该添加一个WebViewClient,正如其他响应所示,但正确的覆盖方法是shouldOverrideUrlLoading()

    返回true表示链接已处理,否则返回false

    【讨论】:

    • 太棒了!谢谢!我已经创建并添加了代码(请参阅我对原始问题的编辑)。现在,当我点击地图网址时,它会在默认的 Google 地图应用中打开!唯一的问题是,url 没有被传递。你知道为什么 Uri.parse(url) 会通过一个空白的 url 吗?如果没有也没关系,你已经帮了不少忙了!!
    • @user3552105 url 没有通过 -- 你的意思是地图没有在正确的坐标打开吗?
    • @user3552105 另外,一个建议:如果你有不同的问题,最好问一个新问题。在您已经接受答案时进行编辑可能会令人困惑,因为人们认为您遇到的任何问题都已经解决了:)
    • 是的,我的意思是,谷歌地图打开,但没有打开位置......它只是打开应用程序。但好电话,我会问一个新的。再次感谢您的回答!
    【解决方案2】:

    我使用此代码是因为 ihad 地图链接和电话号码链接:

     @Override
        public boolean shouldOverrideUrlLoading(WebView wv, String url) {
            if(url.startsWith("tel:")) {
                Intent intent = new Intent(Intent.ACTION_DIAL);
                intent.setData(Uri.parse(url));
                startActivity(intent);
                return true;
            }
    
            if(url.startsWith("https://maps.google")){
                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                startActivity(intent);
                return true;
            }
            wv.loadUrl(url);
            return false;
        }
    

    【讨论】:

      猜你喜欢
      • 2021-07-23
      • 1970-01-01
      • 2019-08-16
      • 2011-04-29
      • 1970-01-01
      • 1970-01-01
      • 2016-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多