我在我的应用程序中加载了一个webview,其中显示了一些按钮,每个按钮都会启动一条使用googleMap生成的路线。
问题是,当我点击“在应用程序中导航”时,什么都没有发生。
我正在吃晚饭 URL_UNKOWN_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;
}
}
);
}
}
我找不到任何解决方法来打开中的链接 google maps
应用程序。我设法解决了未知的url\u方案,但这是令人沮丧的。
提前谢谢!
1条答案
按热度按时间tcbh2hod1#
url\u unknown\u方案是因为它无法识别uri的方案部分(最高位:),您的uri只是以“intent:”开头吗?
要在某个位置打开Map,请尝试切换到地理方案,这样uri类似于“geo:0.01,0.01?q=london”(连同ofc一起更改您的url.contains检查以查找该地址)。如果您希望google maps优先于用户可能安装的任何其他Map应用程序,也可以在调用startactivity(mapinent)之前插入mapinent.setpackage(“com.google.android.apps.maps”)。
如果您想要导航,请使用以google.navigation开头的uri,例如“google.n”avigation:london或“google.n”avigation:0.01,0.01“,对于街景,您可以使用以google.streetview开头的uri