android在调用js中的alert无效
1、注册网络权限
<uses-permission android:name="android.permission.INTERNET" />
2、webView获取Settings,设置支持js
settings.setJavaScriptEnabled(true);
3、setWebChromeClient(WebView类中)辅助处理js
bridgeWebView.setWebChromeClient(new WebChromeClient(){
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
return super.onJsAlert(view, url, message, result);
}
});
在webView的时候,记得清理缓存,不然会一直缓存之前的html,导致改变了html在手机端无效
WebSettings settings = bridgeWebView.getSettings(); settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
类似timeout,confirm都需要类似的配置
//允许页面定位
settings.setGeolocationEnabled(true);
//允许网页弹对话框
settings.setJavaScriptCanOpenWindowsAutomatically(true);
//加快页面加载完成的速度,等页面完成在加载图片
settings.setLoadsImagesAutomatically(true);
//开启localStorage
settings.setDomStorageEnabled(true);
//设置支持javascript,本地DOM储存(解决加载某些网页出现白板现象)
settings.setJavaScriptEnabled(true);
//进行缩放
settings.setBuiltInZoomControls(true);
//设置userAgent
settings.setUserAgentString(bridegWebView.getSettings().getUserAgentString + "app")(true);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
//解决android5.9上webview默认不允许加载http与https混合内容 bridgeWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW)
}

浙公网安备 33010602011771号