2015-03-02 143 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