2011-12-26 42 views
2

目前我有一个Android应用程序,基本上是一个Web视图加载网页。在网页上,我tryed链接到市场上像这样...如何从Android WebView链接到Android应用程序

https://market.android.com/details?id=com.google.earth 

http://market.android.com/details?id=com.google.earth 

market://details?id=com.google.earth 

第一个结果只是打开了一个白色的屏幕(这可能加载,但它一直是他们的一分多钟) 。

第二个结果表明该页面已被移动并显示一个链接。如果你点击第一个链接,它会做第一个链接。

第三个结果表示页面可能暂时关闭。 (它的治疗就像它的网上链接,而不是手机本身)

这里是链接的样子......

echo "<a href='https://market.android.com/details?id=com.google.earth' data-role='button'>Upgrade Now</a>"; 

记住网页我加载使用JQuery Mobile和我m回应与PHP的链接。

如何在网页的webview中打开指向Android Market的链接?

+0

http://stackoverflow.com/questions/3239478/how-to-link-to-android- market-app – ethrbunny 2011-12-26 14:31:58

+0

这些都不适合我... – Joe 2011-12-26 15:00:09

+0

我会尝试jQuery以外的链接,看看会发生什么。 – ethrbunny 2011-12-26 15:13:21

回答

0

在我的情况,我得到了相同的空白/移动暂时麻烦描述。我想使用shouldOverrideUrlLoading,以便本机浏览器不会在从我的页面到Google的oauth2流中使用并返回到我的页面。我的android应用程序正在使用自签名证书与localhost/tomcat通话。原来我需要调用继续,因为证书不匹配:

webView.setWebViewClient(new WebViewClient(){ 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     Log.i("DevAgentSocialMain", "URL: " + url); 
     view.loadUrl(url); 
     return true; 
    } 

    @Override 
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
     Log.i("DevAgentSocialMain", "onReceivedError: " + errorCode + " " + description + " url: " + failingUrl); 
     super.onReceivedError(view, errorCode, description, failingUrl); 
    } 

    @Override 
    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { 
     Log.i("DevAgentSocialMain", "onReceivedSslError: " + error.getPrimaryError()); 
     //super.onReceivedSslError(view, handler, error); 
     handler.proceed(); 
    } 
}); 
0

这可以帮助你

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

} 
+2

请解释这段代码如何回答这个问题。 – rfornal 2015-01-09 15:41:30

相关问题