java – 禁用WebView链接可在模拟器上运行,但在设备上无效
发布时间:2020-12-14 16:33:01 所属栏目:Java 来源:网络整理
导读:我希望禁用我加载到WebView对象的页面的链接.我的代码在我的模拟器上使用api 25完美运行,但在我的手机上没有23 api. 这是阻止我的WebView链接的代码: public class NoLinksWebViewClient extends WebViewClient { @Override public boolean shouldOverrideU
我希望禁用我加载到WebView对象的页面的链接.我的代码在我的模拟器上使用api 25完美运行,但在我的手机上没有23 api.
这是阻止我的WebView链接的代码: public class NoLinksWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view,WebResourceRequest request) { return true; } } 我将我的WebViewClient设置为NoLinksWebViewClient类型的对象.它可以在模拟器上实现,但不能在我的真实手机上实现. 怎么解决这个? 解决方法
我认为关键的区别不是模拟器与设备,而是不同的API级别. // since API 24 boolean shouldOverrideUrlLoading(WebView view,WebResourceRequest request) // before API 24,now deprecated boolean shouldOverrideUrlLoading(WebView view,String url) 由于您只覆盖了较新的方法,因此在旧设备上默认逻辑可以正常工作.发生这种情况是因为显然API 23设备无法知道在API 24中该方法将被替换为不同的方法,因此它仍然会调用旧的(现已弃用)方法. 我相信要解决这个问题你应该覆盖这两种方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |