首先需要设置webview支持js,在Android 9.0后,访问地址如果是http开头的,还需要在配置文件里设置允许http访问:android:usesCleartextTraffic=“true”
webview基础设置:
WebSettings webSettings=mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);//允许使用js
webSettings.setDomStorageEnabled(true);
webSettings.setSupportMultipleWindows(true);//允许开发多个窗口
webSettings.setJavaScriptCanOpenWindowsAutomatically(true); //设置允许JS弹窗
先介绍WebViewClient与WebChromeClient区别
使用WebView基本都会使用这两个类,那他们有哪些区别呢?
WebViewClient主要帮助WebView处理各种通知、请求事件的,有以下常用方法:
onPageFinished 页面请求完成
onPageStarted 页面开始加载
shouldOverrideUrlLoading 拦截url
onReceivedError 访问错误时回调,例如访问网页时报错404,在这个方法回调的时候可以加载错误页面。
WebChromeClient主要辅助WebView处理Javascript的对话框、网站图标、网站title、加载进度等,有以下常用方法。
onJsAlert webview不支持js的alert弹窗,需要自己监听然后通过dialog弹窗
onReceivedTitle 获取网页标题
onReceivedIcon 获取网页icon