顺应大前端的潮流,Hybrid APP越来越重要,学习一波Android与JavaScript的交互方式。
原理:通过WebView这个中间组件来相互调用
一些基础的配置:
val webSetting = webView.settings
// 允许与JS交互
webSetting.javaScriptEnabled = true
// 允许弹窗
webSetting.javaScriptCanOpenWindowsAutomatically = true
// loadUrl会使页面刷新
// 先载入JS代码
// 格式规定为:file:///android_asset/文件名.html
webView.loadUrl("file:///android_asset/javascript.html")
1.Android调用JavaScript
- 通过
WebView.loadUrl("javascript:callJSByLoadUrl()")
: javascript为文件名,callJSByLoadUrl为对应文件下的对应方法名 - 通过
WebView.evaluateJavascript("javascript:callJSByLoadUrl()")
: javascript为文件名,callJSByLoadUrl为对应文件下的对应方法名
方式一:
webView.post {
// 调用javascript的callJS()方法
webView.loadUrl("javascript:callJSByLoadUrl()")
}
方式二:
webView.post {
// 方式二: 4.4以上才可使用
webView.evaluateJavascript(
"javascript:callJSByEvaluate()"
) { value ->
Log.e("wdl", "evaluateJavascript $value")
}
}
对应的JS文件如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<tit