【发布时间】:2021-11-13 11:36:11
【问题描述】:
我正在使用 WebChromeClient() 在 webview 中加载网页。每当用户从该下拉列表中选择我需要显示敬酒的项目时,该网页都有一个下拉列表。为此,我关注official doc 我已经实现了与文档所说的相同。仍然,我在控制台中收到错误。 “showToast 不是函数”。
在片段中:
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val webSettings = webView.settings
webSettings.javaScriptEnabled = true
webSettings.domStorageEnabled = true
webSettings.databaseEnabled = true
webView.addJavascriptInterface(WebAppInterface(requireContext()), "Android")
webView.webChromeClient = object : WebChromeClient() {
override fun onConsoleMessage(consoleMessage: ConsoleMessage): Boolean {
Log.i(TAG, consoleMessage.message())
return true
}
override fun onProgressChanged(view: WebView?, newProgress: Int) {
super.onProgressChanged(view, newProgress)
if (newProgress == 100) {
if (webView != null) {
webView.settings.builtInZoomControls = true
webView.settings.displayZoomControls = false
webView.loadUrl("javascript:loadMobileDashboard($data);")
}
}
}
}
webView.loadUrl(url)
}
WebAppInterface:
class WebAppInterface(private val context: Context) {
private val TAG = WebAppInterface::class.java.simpleName
@JavascriptInterface
fun showToast(toast: String) {
Log.d(TAG, "showToast: $toast")
}
}
我尝试了一些更改并在互联网上搜索了它并没有解决单一的解决方案。请让我知道我在这里犯了什么错误。谢谢:)
【问题讨论】:
标签: javascript android kotlin webview