第一步:使用WebView组件
<WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent" />
第二步:assets文件夹放对应HTML文件或js文件
第三步:引用
webView = findViewById(R.id.webView); //相关属性设置 WebSettings webSettings = webView.getSettings(); //是否支持JavaScript webSettings.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);