Android中用webView引用js
16lz
2021-01-24
第一步:使用WebView组件
第二步:assets文件夹放对应HTML文件或js文件
第三步:引用
webView = findViewById(R.id.webView);//相关属性设置WebSettings webSettings = webView.getSettings();//是否支持JavaScriptwebSettings.setJavaScriptEnabled(true);// 开启DOM storage API 功能webSettings.setDomStorageEnabled(true);// 启动缓存webSettings.setAppCacheEnabled(true);// 设置缓存模式webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);webSettings.setDefaultTextEncodingName("utf-8");// 设置字符编码webSettings.setLoadWithOverviewMode(true);webSettings.setAllowUniversalAccessFromFileURLs(true);webSettings.setAllowFileAccess(true);// 设置允许访问文件数据webSettings.setAllowFileAccessFromFileURLs(true);
//关于setWebChromeClient的用法可以自己百度webView.setWebChromeClient(new WebChromeClient() { public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } @Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); //页面加载进度条 if (newProgress >= 100) { //可以对页面数据进行加载 } } } //拦截js alert()弹框 @Override public boolean onJsAlert(WebView view, String url, String message, final JsResult result) { AlertDialog.Builder b2 = new AlertDialog.Builder(MapActivity.this); b2.setTitle("提示"); b2.setMessage(message); b2.setPositiveButton("ok", new AlertDialog.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { result.confirm(); } }); b2.setCancelable(false); b2.create(); b2.show(); return true; }});
webView.loadUrl(“file:///android_asset/map/html/index.html”);//webview页面加载,到此为止,页面加载完成
//js调用Android方法webView.addJavascriptInterface(new MapJsApi(this), "androidView"); //对JS提供方法进行注册
//android 调用js方法
String call = "javascript:ys.home.map.cancelDraw()"; //直接去map中的方法
String call = "javascript:addElementLine('" + element.getPosition() + "','" + MapConstant.DC_LINE_LAYER_NAME + element.getName() + "','" + CoordinateUtil.convertDFMToDu(longtitude) + "','" + CoordinateUtil.convertDFMToDu(latitude) + "','" + element.getTableType() + "','" + element.getHeritageId() + "','" + element.getFieldID() + "','" + element.getUniformNumber() + "','firebrick',3)";//复杂参数调用单引号包双引号
call = "javascript:clearFeaturesByLayerName('test1')"; //在init.js中有申明
webView.loadUrl(call);
更多相关文章
- 常用方法(1)------根据图片的url路径获得Bitmap对象
- Android静态安全检测 -> 密钥硬编码
- android屏幕监控上下左右滑动
- 使用android中的AIDL让Service与Activity通信[转]
- Android(安卓)BaseFragment封装
- Android之自定义ViewGroup
- [Android]单元测试实例
- android DrawerLayout 点击穿透、点击自身消失等问题解决
- android 解决viewpager+多个fragment+recyclerview,viewpager展示