1. 遇到过webview显示网页时出现空白页,可设置此api
WebSettings.setDomStorageEnabled(true);
//DOM存储API是否可用(默认是false,可能出现空白页,所以建议true)
2. WebChromeClient的 onProgressChanged会出现部分机型不回调的问题,如果要单纯地知道网页是否加载完成的话尽量设置两个Client同时使用。
wvContentResources.setWebViewClient(new MyWebViewClient());
wvContentResources.setWebChromeClient(new MyWebChromeClient());
3. 网页长按保存图片功能,在前端没有处理的情况下,只能安卓这边处理的话,可以这样子
4. 安卓与前端js交互的话,有两种方式 :①WebView.loadUrl(),②WebView.evaluateJavascript() 第二种只能在api大于19的版本才能使用,并且可以拿返回值 。不过第二种不建议使用,因为不够稳定,在个别机型会出现拿不到返回值的情况,解决方式:用第一种方法调用js方法,若需要返回值,则可以与前端同事沟通,在你调用js方法后,在返回数据的时机下让前端同事调用安卓提供的接口方法,将返回值当做参数来给到安卓端。
5. webView也可以使用腾讯的X5 webview,性能挺强的。
implementation'com.tencent.tbs.tbssdk:sdk:43697'
不过有个缺点是没有触摸监听的回调OnTouchListener
官方地址: https://x5.tencent.com
6. 部分机型5.1系统会出现加载不了webview的问题,解决方法:更换Context











网友评论