Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 谷歌地图链接未从Android应用程序上的webView打开_Java_Android_Webview - Fatal编程技术网

Java 谷歌地图链接未从Android应用程序上的webView打开

Java 谷歌地图链接未从Android应用程序上的webView打开,java,android,webview,Java,Android,Webview,我在我的应用程序中加载了一个网络视图,其中显示了一些按钮,每个按钮都会启动一条使用谷歌地图生成的路线 问题是,当我点击“在应用程序中导航”时,什么都没有发生 我遇到了URL\u unknown\u SCHEME错误,但通过添加和@override 我的代码如下所示: package com.example.listarehtgps2; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent;

我在我的应用程序中加载了一个网络视图,其中显示了一些按钮,每个按钮都会启动一条使用谷歌地图生成的路线

问题是,当我点击“在应用程序中导航”时,什么都没有发生

我遇到了
URL\u unknown\u SCHEME
错误,但通过添加和
@override

我的代码如下所示:

package com.example.listarehtgps2;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Window;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {

    WebView web;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        web = findViewById(R.id.webview);

        WebSettings webSettings = web.getSettings();
        webSettings.setJavaScriptEnabled(true);

        web.loadUrl("webViewURL replaced for privacy reasons");

        web.setWebViewClient(new WebViewClient() {
                 @Override
                 public boolean shouldOverrideUrlLoading(WebView view, String url) {
                     // When user clicks a hyperlink, load in the existing WebView
                     if(url.contains("intent:")) {
                         Uri gmmIntentUri = Uri.parse(url);
                         Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
                         startActivity(mapIntent);
                         return true;
                     }
                     view.loadUrl(url);
                     return true;
                 }
             }
            );

        }
    }


我找不到在
谷歌地图
应用程序中打开链接的任何解决方案。 我设法解决了未知的URL方案,但现在这令人沮丧


提前谢谢

URL\u unknown\u方案是因为它无法识别URI的方案部分(最多:),您的URI只是以“intent:”开头吗

要在某个位置打开地图,请尝试切换到geo方案,这样URI类似于“geo:0.01,0.01?q=London”(以及ofc和更改url.contains检查以查找该url)。如果您希望谷歌地图优先于用户可能安装的任何其他地图应用程序,您还可以在调用startActivity(mapIntent)之前插入mapIntent.setPackage(“com.google.android.apps.maps”)

如果您想要导航,请使用以google.navigation开头的URI,例如“google.navigation:London”或“google.navigation:0.01,0.01”,同样,对于街景,您可以使用以google.streetview开头的URI