webview.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
try{
if(url.startsWith("baidumap://")){//过滤
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
//startActivity(intent);//防止开启三方软件
return true;
}
}catch (Exception e){
return false;
}
webview.loadUrl(url);
return true;
}
});
webview定位实现
WebSettings webSettings = webview.getSettings();
// http://bus.mapbar.com/
// https://map.baidu.com/
webview.loadUrl("https://map.baidu.com/");
webSettings.setJavaScriptEnabled(true);
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setDomStorageEnabled(true);
webSettings.setBlockNetworkImage(false);
webSettings.setBlockNetworkLoads(false);
//启用数据库
// webSettings.setDatabaseEnabled(true);
//启用地理定位
webSettings.setGeolocationEnabled(true);
//设置定位的数据库路径
webview.setWebChromeClient(new WebChromeClient(){
@Override
public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
callback.invoke(origin, true, false);//定位
super.onGeolocationPermissionsShowPrompt(origin, callback);
}
});