2012-10-08 71 views
3

Android已更改其默认打开点击的方法,现在它将在webview中而不是新浏览器中打开它们。这已经被要求here但我尝试过的每一件事都打开了WebView中的链接。有人可以给我关于捕获点击的细节,所以我强制要求link to open in the default browser。在你的onclick按钮强制Android WebView在新浏览器中打开

+0

使用意图,你可以做到这一点 –

+0

“Android已经改变了它的默认打开点击方法,现在它打开它们在webview而不是一个新的浏览器” - 你的证据是,究竟是什么? – CommonsWare

+1

我所知道的是,使用相同的应用程序,我运行Android 2.3.7的旧手机在默认浏览器中打开链接,我的新手机4.0.4打开webview中的链接。我不知道为什么我只知道它的确如此。 – dthomas

回答

0

使用本:

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com")); 

startActivity(browserIntent);

对于它来解析它需要一个http://在开始。

+0

如果此答案帮助您将其标记为正确,以帮助其他用户找到它 – SquiresSquire

0

最后工作不知道它是否是最好的方式,但它的工作原理。我在onCreate中放置了下面的代码。字符串strSiteUrl设置为我想让WebView显示的页面。

/* Load WebView in memory */ 
WebView webv = (WebView) findViewById(R.id.webv); 
webv.setWebViewClient(new WebViewClient() { 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     Intent browserIntent = new Intent(); 
     browserIntent.setAction(Intent.ACTION_VIEW); 
     browserIntent.addCategory(Intent.CATEGORY_BROWSABLE); 
     browserIntent.setData(Uri.parse(url)); 
     startActivity(browserIntent); 
     return false; 
    } 
}); //End webv.setVewView 
/* Configure WebView */ 
    WebSettings webSettings = webv.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 
    webSettings.setJavaScriptCanOpenWindowsAutomatically(true); 
    webSettings.setSupportMultipleWindows(true);     
    webv.loadUrl(strSiteUrl); 

当用户点击WebView页面中的链接时,它会打开默认浏览器并显示链接页面。但是,单击后退按钮(取决于单击哪个链接)后,WebView将返回到原始页面或显示链接的页面。这不是我想要的,我只想让WebView显示原始页面。我不知道为什么一些链接没有正确返回,也许这些链接是重定向?所以为了解决这个问题,我使用了onStart调用。我通过在全球声明中放置

WebView webv; 

来制作视图。改变了webv分配

webv = (WebView) findViewById(R.id.webv); 

然后创建了以下在onStart

@Override 
public void onStart() { 
    super.onStart(); 
    String strReturnUrl = String.valueOf(webv.getUrl()); 
    Log.i("URL!", strReturnUrl); 
    if (!strReturnUrl.contentEquals(strSiteUrl)) { 
     webv.loadUrl(strSiteUrl); 
    } 
} 

写入日志返回的URL证明,当按下后退按钮它根据不同的网址,在其上点击链接返回。我使用if语句来防止不必要的重新加载原始网址。

相关问题