Это мой 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")
}
}
Но это кража sh.
Причина: java .lang.Throwable: метод WebView был вызван в потоке 'JavaBridge'. Все методы WebView должны вызываться в одном потоке.
Как я могу это исправить? Я нашел решение путем поиска, но это был java код. Kotlin и Java совместимы, но не работают из-за синтаксической ошибки. (Я думаю, это потому, что я не знаю Kotlin и Java. В любом случае)
Я - разработчик полного стека на JavaScript и у меня нет никаких знаний Android, так что Я только хотел использовать веб-просмотров. Но это тоже очень сложно для меня. (Это как период хаоса, когда я впервые узнал JavaScript.)
Пожалуйста, сообщите мне решение. пс. Если у вас есть хороший список понятий наследования и области действия Kotlin, пожалуйста, ссылку.