Ваше веб-представление может взаимодействовать с вашим кодом Java / Kotlin через addJavascriptInterface .
Начните с создания класса, который позже вы установите как WebView
JavaScript интерфейс. Аннотируйте методы, которые вы хотите предоставить JavaScript, с помощью @JavascriptInterface
. Вы также можете добавить аргументы к этим методам:
class MyJsInterface() {
@JavascriptInterface
fun onShowNativePlayer() {
// Add your logic to show the native player instead of the HTML5.
}
}
Создайте экземпляр указанного выше класса и передайте его своему WebView
:
myWebView.addJavascriptInterface(MyJsInterface(), "android_js_interface")
И, наконец, вот как вы можете запускать открытые методы Java / Kotlin из вашего JavaScript кода:
// This value should match the second argument that you passed in addJavascriptInterface.
var ANDROID_JS_INTERFACE = "android_js_interface"
...
// Call your Java/Kotlin method.
window[ANDROID_JS_INTERFACE].onShowNativePlayer()
Бонус:
Вы также можете добиться обратного (ie. вызов JavaScript методов из вашего кода Java / Kotlin):
myWebView.evaluateJavascript("myJsFunc()", null)
Где myJsFunc()
- это функция, которую вы определили в своем JavaScript коде:
// You can also pass arguments.
window.myJsFunc = function() {
// Do something here.
}