我希望禁用我加载到WebView对象的页面的链接.我的代码在我的模拟器上使用api 25完美运行,但在我的手机上没有23 api.
public class NoLinksWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view,WebResourceRequest request) { return true; } }
我将我的WebViewClient设置为NoLinksWebViewClient类型的对象.它可以在模拟器上实现,但不能在我的真实手机上实现.
怎么解决这个?
解决方法
My code works perfectly on my emulator with api 25,but not on my phone with 23 api.
我认为关键的区别不是模拟器与设备,而是不同的API级别.
如果您查看WebViewClient上的文档,您会注意到有两种相似但不同的方法:
// since API 24 boolean shouldOverrideUrlLoading(WebView view,WebResourceRequest request) // before API 24,now deprecated boolean shouldOverrideUrlLoading(WebView view,String url)
由于您只覆盖了较新的方法,因此在旧设备上默认逻辑可以正常工作.发生这种情况是因为显然API 23设备无法知道在API 24中该方法将被替换为不同的方法,因此它仍然会调用旧的(现已弃用)方法.