允许所有的市场://“从网页视图中打开谷歌Play商店中的链接(Allow all 'mar

2019-07-18 19:32发布

我在我的WebView一些链接是市场://链接。 当我的用户对他们的挖掘,这让他们无法找到错误的页面。

我怎样才能让与市场开头的所有链接://自动打开谷歌Play商店他们挖掘的时候? 我试过了:

final Intent intent = new Intent("android.intent.action.VIEW");
            intent.setData(Uri.parse("market://details?id="));
            startActivity(intent);
        }

但是这似乎并没有做任何事情。 我是很新的这所以任何帮助,将不胜感激。 此外,仅供参考,我不能改变市场://链接到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;
    }
}

Answer 1:

你可以决定通过查看URL的计划做什么,如果安装了谷歌Play商店应用程序,你可以打开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;
    }
});


Answer 2:

您可以使用此代码这样也如果帮助您:

// 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)));


Answer 3:

 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;
 }    


文章来源: Allow all 'market://' links from inside a webview to open Google Play store