赞
踩
mWebviewContent.requestFocus(); WebSettings setting = mWebviewContent.getSettings(); setting.setDefaultTextEncodingName("utf-8");//设置网页默认编码 setting.setLoadWithOverviewMode(true); setting.setUseWideViewPort(true); setting.setJavaScriptEnabled(true); // 设置Webview支持JS代码 setting.setJavaScriptCanOpenWindowsAutomatically(true);//JS互调 setting.setDatabaseEnabled(true); // 开启 database storage API 功能 // setting.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); setting.setDomStorageEnabled(true); // 开启 DOM storage API 功能 // setting.setAppCacheEnabled(true);//开启 Application Caches 功能 setting.setAllowContentAccess(true); // 是否可访问Content Provider的资源,默认值 true setting.setAllowFileAccess(true);// 设置允许访问文件数据 // 是否允许通过file url加载的Javascript读取本地文件,默认值 false setting.setAllowFileAccessFromFileURLs(false); // 是否允许通过file url加载的Javascript读取全部资源(包括文件,http,https),默认值 false setting.setAllowUniversalAccessFromFileURLs(false); // 支持缩放 setting.setSupportZoom(true); setting.setTextZoom(100); /** * js调用java代码里的方法 */ mWebviewContent.addJavascriptInterface(new JavaScriptInterface(mContext, mWebviewContent), "app");
class JavaScriptInterface { private Context context; private WebView webView; private JavaScriptInterface(Context context, WebView webView) { this.context = context; this.webView = webView; } @JavascriptInterface public void showChoosePicDialog() { runOnUiThread(new Runnable() { @Override public void run() { // 这里可以写需要做的操作 // ...... } }); } }
mWebviewContent.addJavascriptInterface(new JavaScriptInterface(mContext, mWebviewContent), "app");
这个里的"app"要对应上前端代码的参数 , 是什么都可以 , 但是两边一定要相同 .mWebviewContent.addJavascriptInterface(new JavaScriptInterface(mContext, mWebviewContent), "app");
中 , new的这个JavaScriptInterface为你自己写的js可调用的那些方法上的类名 .@JavascriptInterface
runOnUiThread
webView.loadUrl("javascript:webJS.reload(1)");
webJS.reload()
为js那边的方法 , 方法名要和js那边一样 , 括号里的1为js里的本方法需要的传参 , 不需要传参的时候不传就可以 .Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。