android webview 设置锚点,一个work around方法:解决Android 3.0~4.0下WebView 对锚点链接不支持的bug...

一个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();

}

}

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值