Android已更改其打开点击的默认方法,现在它会在网页浏览中打开它们而不是新浏览器。这已经被问到here但是我尝试过的每件事都会打开WebView中的链接。有人可以向我提供有关捕获点击的详细信息,因此我强制link to open in the default browser
。
答案 0 :(得分:0)
在你的按钮上点击:
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(browserIntent);
要解析它,首先需要 http:// 。
答案 1 :(得分: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调用。我通过放置
使视图成为webv全局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证明,当按下后退按钮时,它会返回不同的URL,具体取决于单击的链接。我使用if语句来防止不必要的重新加载原始URL。