msm*_*919 1 android webview kotlin
这是我的 kotlin 代码:
class WebAppInterface(private val mContext: Context, private val myWebView: WebView) {
@JavascriptInterface
fun goToHello() {
val myWebView = myWebView
myWebView.loadUrl("file:///android_asset/hello.html")
}
}
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val myWebView: WebView = findViewById(R.id.webview)
myWebView.settings.javaScriptEnabled = true
myWebView.addJavascriptInterface(WebAppInterface(this, myWebView), "Android")
myWebView.loadUrl("file:///android_asset/index.html")
}
}
Run Code Online (Sandbox Code Playgroud)
但它是崩溃的。
引起:java.lang.Throwable:在线程“JavaBridge”上调用了 WebView 方法。所有 WebView 方法都必须在同一线程上调用。
我怎样才能解决这个问题?我通过搜索找到了一个解决方案,但这是 java 代码。Kotlin 和 Java 兼容,但由于语法错误而无法运行。(我想是因为我不懂 Kotlin 和 Java。反正)
我是一个基于 JavaScript 的全栈开发人员,我没有任何 Android 知识,所以我只想使用 webviews。但这对我来说也是非常困难的。(这就像我第一次学习 JavaScript 时的混乱时期。)
请告诉我解决方法。附:如果您有 Kotlin 的继承和范围概念的好列表,请链接。
您应该使用Runnable和 Post to WebView Handler。
myWebView.post(Runnable {
myWebView.loadUrl("file:///android_asset/index.html")
})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1067 次 |
最近记录: |