Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
强制Android WebView在新浏览器中打开_Android_Android Webview - Fatal编程技术网

强制Android WebView在新浏览器中打开

强制Android WebView在新浏览器中打开,android,android-webview,Android,Android Webview,Android已经改变了默认的打开点击的方法,现在它在webview中打开点击,而不是在新的浏览器中。这已经被问到了,但我尝试的每一件事都会打开WebView中的链接。有人能告诉我捕获点击的详细信息吗?这样我可以强制在默认浏览器中打开链接 Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com")); startActivity(浏览器内容) 要让它解析它,一开始需要一个htt

Android已经改变了默认的打开点击的方法,现在它在webview中打开点击,而不是在新的浏览器中。这已经被问到了,但我尝试的每一件事都会打开WebView中的链接。有人能告诉我捕获点击的详细信息吗?这样我可以强制在默认浏览器中打开
链接

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(浏览器内容)


要让它解析它,一开始需要一个http://文件。

最后才能工作。我不知道这是否是最好的方法,但它确实有效。我将以下代码放在onCreate中。字符串stristeurl设置为我希望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写入日志证明,当按下后退按钮时,返回的url会根据单击的链接的不同而有所不同。我使用if语句来防止不必要地重新加载原始url。

“Android已经更改了打开点击的默认方法,现在它在webview中打开点击,而不是在新的浏览器中”——你对此的证明是,确切地说?我所知道的是,使用同一个应用程序,运行Android 2.3.7的旧手机会在默认浏览器中打开链接,而我的新手机4.0.4会在网络视图中打开链接。我不知道为什么我只知道它是正确的。如果这个答案帮助你将它标记为正确的,以帮助其他用户找到它