如何为WebView类实现OnClick侦听器

问题描述

我正在尝试为WebView中的类实现OnClick事件,该事件将在触发OnClick时打开android内部视频播放器。此外,它需要获取将要播放的视频并在Android视频播放器中播放。谢谢您的任何帮助。

解决方法

使用JavascriptInterface

class MyActivity : AppCompatActivity() {
    @SuppressLint("SetJavaScriptEnabled")
    override fun onCreate(savedInstanceState: Bundle?) {
        //...
        webView.settings.javaScriptEnabled = true
        webView.addJavascriptInterface(MyJavascriptInterface(this),"Android")
    }

    class MyJavascriptInterface(private val context: Context) {
        @JavascriptInterface
        fun showVideoPlayer(url: String) {
            // TODO: show video player using url.
        }
    }
}

然后,在javascript端调用JavascriptInterface函数。

<script>
    function showAndroidVideoPlayer(url) {
        Android.showVideoPlayer(url);
    }
</script>

<button onClick="showAndroidVideoPlayer('https://example.com')">Click me!</button>