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)  
}

 

posted @ 2023-01-12 15:23  霖薇暮  阅读(209)  评论(0)    收藏  举报