在处理重定向链接时,我在Android webview应用程序中使用反键进入死循环.
例如,当我的webview开始时,它将转到link0.
在link0中,有一个链接到link1的href链接.Link1重写到link2.
因此,如果我单击link1,它将转到link1,然后重定向到link2.当我点击返回键时,它应该返回到link0,在我的情况下.但相反,它转到link1,它再次重定向回link2.所以我再也没有机会回去了.
如果它们不是重定向链接,则反向键可以与其他链接正常工作.
我用Google搜索网页寻求帮助,但未找到相关问题.
顺便说一下,反密钥在互联网浏览器中按预期工作.但不是在webview中.
以下是我的代码,供您试用.正如你在代码中看到的那样,我尝试了onBackPressed和onKeyDown,但是更好的是.
谢谢你的帮助.我对此持续了一段时间.
================================================== ================================
public class MyActivity extends Activity
{
private WebView myWebView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myWebView = (WebView) findViewById(R.id.webview);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.loadUrl("http://50.112.242.120/temp/");
myWebView.setWebViewClient(new MyWebViewClient());
}
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
myWebView.loadUrl(url);
return true;
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// Check if the key event …Run Code Online (Sandbox Code Playgroud) 我试图找到一种方法来处理WebView后台堆栈,类似于Android Web浏览器在我自己的应用程序的WebView中按下后退按钮时如何处理它.
问题与Javascript重定向有关.WebView后备堆栈似乎包含只是重定向的URL.这是我的相关代码:
private class ArticleWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK)
{
WebView wv = (WebView)findViewById(R.id.web);
if (wv.canGoBack())
{
wv.goBack();
return true;
}
}
return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)
如您所见,按后退按钮可选择堆栈中的先前URL,该URL在调用shouldOverrideUrlLoading()之后加载到WebView本身.我实际上在shouldOverrideUrlLoading()中做了很多与这个特定问题无关的事情,所以"删除我的WebViewClient实现"对我来说不起作用.无论如何,当前一个URL是Javascript重定向时,该URL加载,然后Javascript立即重定向到WebView所在的URL.我无法禁用Javascript,因为网站依赖于它.我也无法更改网站(第三方).
这种重定向问题的结果是最终用户的恶性循环,他们疯狂地回击只是比Android网页处理引擎稍快.
现在这里有趣的地方:Android网页浏览器处理后退按钮就好了Javascript重定向!它遵循重定向很好,但后退按钮执行用户期望它做的事情.这意味着可以正确处理这种情况.Android Web浏览器如何处理此问题?