Android 允许所有';市场://和#x27;打开Google Play商店的网络视图中的链接
我的webview中有一些链接是market://链接。当我的用户点击他们时,会给他们一个页面找不到错误 如何允许所有以market://开头的链接在点击时自动打开Google play商店?我试过:Android 允许所有';市场://和#x27;打开Google Play商店的网络视图中的链接,android,android-intent,android-webview,Android,Android Intent,Android Webview,我的webview中有一些链接是market://链接。当我的用户点击他们时,会给他们一个页面找不到错误 如何允许所有以market://开头的链接在点击时自动打开Google play商店?我试过: final Intent intent = new Intent("android.intent.action.VIEW"); intent.setData(Uri.parse("market://details?id=")); startActiv
final Intent intent = new Intent("android.intent.action.VIEW");
intent.setData(Uri.parse("market://details?id="));
startActivity(intent);
}
但这似乎没什么作用。我是一个新手,所以任何帮助都将不胜感激。另外,仅供参考,我本人无法将market://links更改为play.google.com。它们是我的广告商寄来的
我是否可以将其包含在此代码中:
public boolean shouldOverrideUrlLoading(WebView paramWebView, String paramString) {
if (DEBUG)
Log.e("shouldOverride", paramString);
if (Uri.parse(paramString).getHost()!=null && (!Uri.parse(paramString).getHost().equals("market.android.com")) && (!paramString.contains("facebook.com")) && (!Uri.parse(paramString).getHost().contains("twitter.com")) && (!Uri.parse(paramString).getHost().equals("play.google.com"))
&& (!Uri.parse(paramString).getHost().contains("bit.ly")) && (!Uri.parse(paramString).getHost().contains("plus.google.com")) && (!Uri.parse(paramString).getHost().contains("youtube.com"))){
if(isAppOrGamePage(paramString)){
final Intent intent = new Intent(MainActivity.this, PageActivity.class);
intent.putExtra("app_url", paramString);
startActivity(intent);
} else
return false;
} else {
final Intent intent = new Intent("android.intent.action.VIEW", Uri.parse(paramString));
startActivity(intent);
}
return true;
}
}
如果以下代码对您有帮助,您也可以这样使用此代码:
// It will not work in android simulator as it does not have Google Play Store
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id="+APP_ID)));
您可以通过查看url的方案来决定要做什么,如果安装了Google Play Store应用程序,您可以在Play Store应用程序中打开详细信息页面,否则您可以显示应用程序的Google Play网页
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (Uri.parse(url).getScheme().equals("market")) {
try {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
Activity host = (Activity) view.getContext();
host.startActivity(intent);
return true;
} catch (ActivityNotFoundException e) {
// Google Play app is not installed, you may want to open the app store link
Uri uri = Uri.parse(url);
view.loadUrl("http://play.google.com/store/apps/" + uri.getHost() + "?" + uri.getQuery());
return false;
}
}
return false;
}
});
那似乎不起作用。我已经用我的代码片段更新了我的原始帖子。如果你有机会,请看一看。仅供参考,这个问题是从官方链接来的…(讽刺的是,OP
if (url.startsWith("market://")||url.startsWith("vnd:youtube")||url.startsWith("tel:")||url.startsWith("mailto:"))
{
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
startActivity(intent);
return true;
}