之前一直用的交互是给js 提供本地方法,然后js 去调用执行,
今天记录一下为 js 注入一个 参数类型的值以供调用
private fun injectParam() {
val methods = arrayListOf<String>(
"close"
)
val params = HashMap<String, Any>().apply {
put("version", "1.1.0")
put("apis", methods.toTypedArray())
}
try {
val result = Gson().toJson(params, object : TypeToken<HashMap<String, Any>>() {}.type)
val script =
"(function() { window.NativeVal = \'$result\'; return window.NativeVal })();"
mWebView.evaluateJavascript(
script
) { value -> Log.d("output", value!!) }
} catch (e: Exception) {
}
}
注意一下 NativeVal
为 html 中调用的值,
调用方法
在 js 中调用该方法。
didFetchApiVersion : function() {
document.getElementById('NativeVal').innerHTML = window.NativeVal
}