如何在android webview app中打开特定链接?

时间:2016-04-14 13:20:21

标签: android webview android-webview ads

我已经使用WebView在Android应用中集成了一个网站。

webtcet.loadUrl("http://www.myaddaa.in/");
 webtcet.setWebViewClient(new MyWebviewClient());

private class MyWebviewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {

            view.loadUrl(url);
            return true;

        }
}

但是当我尝试在Android应用中打开广告链接时(在我的手机中运行它有谷歌播放服务)它显示无法加载。

Webview contain vodafone ads after clicking on download icon

那么,如果是广告,我将如何直接打开链接到Playstore而不是webview? 提前谢谢

2 个答案:

答案 0 :(得分:0)

  1. 我认为直接在网页浏览中开放市场是一个好主意。最好的方法是将意图传递给像这样的商店

    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id="+YOU_APP_ID)));
    
  2. 如果您出于某种原因确实需要此行为,则必须拦截所有market://个链接并按常规浏览器链接加载

    webView.setWebViewClient(new WebViewClient(){

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (Uri.parse(url).getScheme().equals("market")) {
              [parse the link to get app id from url]
              webview.loadUrl(https://play.google.com/store/apps/details?id=[YOU_APP_ID]);
            }
         });
    

答案 1 :(得分:0)

所以只需拦截你的shouldOverrideUrlLoading

中的这个链接
webView.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (Uri.parse(url).getScheme().equals("market")) {
            try {
               startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
                return true;
            } catch (ActivityNotFoundException e) {
                // open link in browser as described above
            }

        }
        return false;
    }
});