一个work around方法:解决Android 3.0~4.0上WebView 对锚点链接不支持的bug

Android应用将一些html文件放在工程内的assets目录下,通过WebView去显示这些html文件,
简单地打开一个html文件是正常的。但是如果在一个html里点击一个链接,该链接指向另一个html里的一个锚位置,会出现错误,提示不可用。
"The webpage at file:///android_asset/other_file.html#fragment
might...."
 
在   http://code.google.com/p/android/issues/detail?id=17327 里有很热闹的讨论。

以上问题在Android4.0上出现,网上有反映3.0上也有,经实测在4.1上已修正。

如何在Android 4.0手机上修正此问题呢,一个work around方案如下:

mWebView.setWebViewClient(new WebViewClient() {

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

Log.d("erik", "loadUrl ,url = " + url);

view.loadUrl(url);

return true;

}

public void onReceivedError(WebView view, int errorCode,

String description, String failingUrl) {

if(failingUrl.contains("#")){

Log.d("erik", "failingurl = " + failingUrl);

String[] temp;

temp = failingUrl.split("#");

view.loadUrl(temp[0]); // load page without internal

try {

Thread.sleep(400);

} catch (InterruptedException e) {

e.printStackTrace();

}

view.goBack();

view.goBack();

}

}

});

猜你喜欢

转载自ericbaner.iteye.com/blog/1666593
今日推荐