2015-03-02 78 views
1

我使用webview浏览我的网站。我的网站包含市场网址。 当市场URL被点击时(代码如下),我尝试启动Playstore应用程序,但应用程序打开最后一个打开的应用程序不是PlayStore。 如果我回来并重新打开我的应用程序,PlayStore在我的webView中打开。 我需要帮助,谢谢。Android WebView和市场网址

mWebview.setWebViewClient(new WebViewClient() { 

     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       if (url.startsWith("market://")) 
       { 
        Intent intent = new Intent(Intent.ACTION_VIEW); 
        intent.setData(Uri.parse(url)); 
        startActivity(intent); 
        return true; 
       } 
       else{ 
        view.loadUrl(url); 
        return true; 
        } 

     } 

     @Override 
     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
      Toast.makeText(activity, "Unable to open URL\nPlease Activate WiFi or MobileData and Try Again", Toast.LENGTH_LONG).show(); 
     } 
    }); 

我解决了这个代码更改的问题。为我完美工作。从任何市场公开市场:// URL

public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      if (url != null && url.startsWith("market://")) { 
       Intent i = new Intent("android.intent.action.VIEW"); 
       i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
       i.setData(Uri.parse(url)); 
       startActivity(i); 

       return true; 
      } else { 
       return false; 
      } 
     } 
+0

市场网址是否在您的网站上正确指定。是正确的格式,以“市场://”而不是“http://”开头的url是 – dishan 2015-03-03 07:25:42

+0

是的url是市场格式“market://”如果我在浏览器中浏览我的网站并点击url playstore应用程序正确打开 – Daniel 2015-03-03 17:35:44

回答

0

首先,你必须检查Play商店的用户设备上的所有脑干。如果Play商店未启用,请在您的网络视图中打开商店,否则请打开商店应用。

final String appPackageName = yourPackagesName; 
    try { 
     startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + yourPackagesName))); 
    } catch (android.content.ActivityNotFoundException anfe) { 
     startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=" + yourPackagesName))); 
    } 
+0

感谢乔治,但此解决方案不适合我。在我的网站我有各种市场链接,所以我不能使用字符串“yourPackageName”任何替代解决方案? – Daniel 2015-03-02 17:44:39

+0

根据用户点击的URL,您将相应地替换'yourPackageName'字符串。你能向我们展示一个如何格式化你的URL的例子吗?如果您在URL中提到该软件包,则可以从中提取软件包的名称并将其设置为'yourPackageName'的值。 – 2015-03-03 09:19:21

+0

这是我在我的网站上的一个网址:“market:// details?id = com.google.android.apps.adm&hl = en”(是我建议的应用程序)。如果我在Android浏览器中浏览我的网站,请点击正确打开的网址Playstore,但在webview中无效。 – Daniel 2015-03-03 17:40:51