2013-12-16 76 views
0

我有一个在Android中的片段中加载的webview。当用户点击webview中加载的网页上的链接时,我希望新页面在我的应用程序之外的Android上的默认浏览器中加载。任何想法如何做到这一点?谢谢!如何在Android中的WebView中单击的浏览器中打开链接

我有什么至今:

FrameLayout layout = new FrameLayout(context); 

WebView webView = new WebView(getActivity()); 
webView.setBackgroundColor(Color.TRANSPARENT); 
webView.loadUrl(InvestBetterURL); 
webView.setWebViewClient(new WebViewClient(){ 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url){ 
     return false; 
    } 
    @Override 
    public void onPageStarted (WebView view, String url, Bitmap favicon) 
    { 
     view.setVisibility(View.GONE); 
    } 

    @Override 
    public void onPageFinished (WebView view, String url) 
    { 
     view.setVisibility(View.VISIBLE); 
    } 

}); 

layout.addView(webView); 

回答

3

更改shoudlOverrideUrlLoading为true。检查链接: http://developer.android.com/reference/android/webkit/WebViewClient.html#shouldOverrideUrlLoading(android.webkit.WebView,java.lang.String中)

更新:

private class CustomWebViewClient extends WebViewClient { 
     @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       if(url.contains("google.com")) { 
       view.loadUrl(url); 
       } else { 
       Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
       startActivity(i); 
       } 
       return true; 
      } 
     } 
+0

感谢您的答复!除非用户试图离开已经在WebView中打开的URL,否则我不希望它从外部加载。这不会使它始终从外部加载URL吗? – John

+0

是的。我误解了这个问题。您需要根据网址发送意图。我会更新我的答案 – user2511882

+0

请接受并关闭该问题是否对您有帮助。谢谢 – user2511882

相关问题