总的来说都是使用安卓webview.loadUrl(url)加载页面
url为在线网页连接
将打包好的网页资源放入安卓静态目录
加载目录为
Android 调用 JS 有两种方式,都是通过 WebView 的方法:
webview.loadUrl()
webview.evaluateJavascript()
js方法
vue需要把方法挂载到windows
通过映射js object暴露给js操作
安卓
h5调用
经常需要适配安卓和ios
加入以下机型判断
Android与H5交互——JSBridge - (jianshu.com)
1、Android 调用js
mAgentWeb.getJsAccessEntrace().quickCallJs(" ")
quickCallJs("方法名",参数...);
方法名不带 ()
例:
js方法 getJs()
mAgentWeb.getJsAccessEntrace().quickCallJs("getJs ")
js方法 getJs(var a,var b)
mAgentWeb.getJsAccessEntrace().quickCallJs("getJs ",a,b)
2、js调用Android
mAgentWeb.getJsInterfaceHolder().addJavaObject("android",new Class())
js调用 window.android.方法名(参数)
Android中提供的方法 需要添加注解 @JavascriptInterface
具体原因是这样的:1、Java调用js里面的函数、效率并不是很高、估计要200ms左右吧、做交互性很强的事情、这种速度很难让人接受、而js去调Java的方法、速度很快、50ms左右、所以尽量用js调用Java方法。
2、Java调用js的函数、没有返回值、调用了就控制不到了。
3、Js调用Java的方法、返回值如果是字符串、你会发现这个字符串是native的、转成locale的才能正常使用、使用toLocaleString()函数就可以了、不过这个函数的速度并不快、转化的字符串如果很多、将会很耗费时间。
4、网页中尽量不要使用jQuery、执行起来需要5-6秒、最好使用原生的js写业务脚本、以提升加载速度、改善用户体验。