Android:WebView goback()始终为重定向URL重新加载同一页面
我已经实现了自己的自定义web浏览器,具有基本功能(后退、前进、刷新和停止按钮)。一切都非常正常,但每当我在其中加载重定向url并试图通过调用“webview.goBack()”返回时,它就会中断 让我们假设URL1重定向到URL2。因此,每当我尝试打开URL1时,webview都会自动重定向到URL2。在完全加载URL2后,如果我试图通过调用“webview.goBack”返回上一页,webview将尝试加载URL1,它再次重定向到URL2,并且我再次登录到同一页 这是我的密码: '私有WebViewClient mWebViewClient=新WebViewClient(){ 任何帮助都将不胜感激。谢谢!试试以下方法:Android:WebView goback()始终为重定向URL重新加载同一页面,android,redirect,webview,Android,Redirect,Webview,我已经实现了自己的自定义web浏览器,具有基本功能(后退、前进、刷新和停止按钮)。一切都非常正常,但每当我在其中加载重定向url并试图通过调用“webview.goBack()”返回时,它就会中断 让我们假设URL1重定向到URL2。因此,每当我尝试打开URL1时,webview都会自动重定向到URL2。在完全加载URL2后,如果我试图通过调用“webview.goBack”返回上一页,webview将尝试加载URL1,它再次重定向到URL2,并且我再次登录到同一页 这是我的密码: '私有Web
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.d(TAG, "shouldOverrideUrlLoading");
return false;
};
那么,您希望通过单击URL2返回到哪里呢?我想URL 1是对的?那么您还期望什么呢?此URL1自动将用户重定向到URL2,以便按预期工作。您移动到URL2表示您的URL1已加载。您不能停在那里,即使是在桌面浏览器上。我想您没有遇到我的问题。请参阅I've没有直接加载URL2,它是由于URL1中的重定向而加载的。因此,当我在webview上说返回时,它应该将我带到我加载URL1(以及间接加载URL2)的上一页。@commonware有什么建议吗?
onBackPressed()
,如果当前URL是此“重定向URL”,则您可以加载
URL 0`ie,即您在按下后所期望的URL。到目前为止,这里唯一可能的黑客攻击。
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.d(TAG, "shouldOverrideUrlLoading");
return false;
};
webView.setInitialScale(1);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUserAgentString(
"Mozilla/5.0 (Linux; Android 5.1.1; Nexus 5 Build/LMY48B; wv)
AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0
Chrome/43.0.2357.65 Mobile Safari/537.36"
);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
webView.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
}});
webView.loadUrl(url);