我正在开发一个安卓 Kotlin 项目。
MainActivity 类包含以下代码:
val webView = findViewById<WebView>(R.id.webview)
webView.webViewClient = object : WebViewClient() {
override fun onPageFinished(view: WebView?, url: String?) {
val js = "test();"
webView.evaluateJavascript(js) { result ->
val json = JSONObject(result)
val name_exists = json.getString("name_exists")
}
}
}
webView.settings.javaScriptEnabled = true;
webView.webChromeClient = object : WebChromeClient() {
override fun onConsoleMessage(message: ConsoleMessage): Boolean {
Log.d("MyApplication", "${message.message()} -- From line " +
"${message.lineNumber()} of ${message.sourceId()}")
return true
}
}
webView.loadUrl("file:///android_asset/test.html")
示例 test.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
<script>
function test() {
if (options?.name != null) {
return {
name_exists: 'success'
}
}
else{
return {
name_exists: 'warning'
}
}
}
</script>
</body>
</html>
我在options?.name
的代码行中遇到错误:Unexpected token .
。
为什么带有可选链(?.
)的javascript在webview中不能正常工作?
option
对象是什么? - undefined?.
会出现错误消息。 - undefined