现在的APP里面会嵌套一些h5酷炫的界面,而我们的app就需要和H5进行交互,下面我们就来看看怎么进行具体的交互。
Webview的基本设置
以下是webview的基本设置
WebSettings setting = mWebView.getSettings();setting.setJavaScriptCanOpenWindowsAutomatically(true);//设置js可以直接打开窗口,如window.open(),默认为false setting.setJavaScriptEnabled(true);//是否允许执行js,默认为false。设置true时,会提醒可能造成XSS漏洞 setting.setSupportZoom(true);//是否可以缩放,默认true setting.setBuiltInZoomControls(false);//是否显示缩放按钮,默认false setting.setUseWideViewPort(true);//设置此属性,可任意比例缩放。大视图模式 setting.setLoadWithOverviewMode(true);//和setUseWideViewPort(true)一起解决网页自适应问题 setting.setAppCacheEnabled(true);//是否使用缓存 setting.setDomStorageEnabled(true);//DOM Storage setting.setDatabaseEnabled(true); setting.setAllowFileAccess(true); setting.setAppCacheEnabled(true); setting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); //图片太大 setting.setDatabasePath(getActivity().getApplicationContext().getCacheDir().getAbsolutePath()); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { setting.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); }
开启log日志
开启打印web的日志设置,可以看到log信息:
webview.setWebChromeClient(new WebChromeClient() { public boolean onConsoleMessage(ConsoleMessage cm) { LogUtils.e(TAG, "打印web日志------"+cm.message() + " -- From line " + cm.lineNumber() + " of " + cm.sourceId()); return true; } });
添加JavascriptInterface;
mWebView.addJavascriptInterface(new AndroidJavaScript(), "test");
AndroidJavaScript
public class AndroidJavaScript { @JavascriptInterface public void testPage() { LogUtils.e("test", "testPage"); } }
testPage是和H5约定的名称,以上就是简易的Android和js的交互,具体的细节还需要和H5讨论。
HTML简易代码
里面主要有两个按钮,两个JS方法
<html><head><meta http-equiv="Content-Type" content="text/html;charset=gb2312"><script type="text/javascript">function AndroidCallJs(){ document.getElementById("content").innerHTML = "<br\>Android调用了JS的无参函数";}function AndroidCallJsParam(arg){ document.getElementById("content").innerHTML = ("<br\>"+arg);}</script></head><body>HTML Test <br/><h1><div id="content">Test </div></h1><br/><input type="button" value="点击调用Android代码" onclick="window.android.startFunction()" /><br/><input type="button" value="点击调用Android代码并传递参数" onclick="window.android.startFunction('https://blog.csdn.net/sinat_26397681?spm=1000.2115.3001.5343')" /></body></html>
Android 的调用方式
// 无参数调用 JS的方法 webview.loadUrl("javascript:AndroidCallJs()");//有参调用HTML js方法webview.loadUrl("javascript:AndroidCallJsParam(" + "'https://blog.csdn.net/sinat_26397681?spm=1000.2115.3001.5343'" + ")");
欢迎关注公众号 拖鞋王子猪 一起开心起来。
原文转载:http://www.shaoqun.com/a/505918.html
米谷:https://www.ikjzd.com/w/1788
丰趣海淘:https://www.ikjzd.com/w/1716
现在的APP里面会嵌套一些h5酷炫的界面,而我们的app就需要和H5进行交互,下面我们就来看看怎么进行具体的交互。Webview的基本设置以下是webview的基本设置WebSettingssetting=mWebView.getSettings();setting.setJavaScriptCanOpenWindowsAutomatically(true);//设置js可以直接打开窗口,如win
麦言:麦言
prime day:prime day
乐山美食介绍 :乐山美食介绍
2019中国贸易对象中,美国第三,它第一!:2019中国贸易对象中,美国第三,它第一!
大理宝成府门票多少?:大理宝成府门票多少?
No comments:
Post a Comment