【问题标题】:How to show an activity with JavaScript code in Webview?如何在 Webview 中使用 JavaScript 代码显示活动?
【发布时间】:2024-07-04 22:35:02
【问题描述】:

我的应用程序有一个包含 Webview 的第一个活动,并在应用程序开始时从服务器加载一个简单页面。

页面代码为:

<html>
<head>
    <title></title>
    <meta charset="utf-8" />
</head>
<body>
    <button id="btn_foo"></button>
</body>
</html>

我有第二个带有视频播放器的活动。

如何通过 JavaScript 在我的网页中显示/隐藏第二个活动?例如,当我点击btn_foo 时(就像 Firefox 中的 VLC 插件,可以通过 JavaScript 向它发送命令)。

【问题讨论】:

标签: javascript android android-studio webview


【解决方案1】:

这是您在 onCreate 中所做的:

class MyJavaScriptInterface {
    @JavascriptInterface
    public void doStuff(String param) {

        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                // start Video Activity here
            }
        });
    }
}

final WebView webView = (WebView) findViewById(R.id.browser);
webView.setWebChromeClient(new WebChromeClient());

/* enable JavaScript */
webView.getSettings().setJavaScriptEnabled(true);

/* Register a new JavaScript interface called Android */
webView.addJavascriptInterface(new MyJavaScriptInterface(), "Android");

/* load a web page */
webView.loadUrl(url);

在您加载的网站中,当点击按钮时,运行

Android.doStuff("video1"); // calling the @JavascriptInterface method

【讨论】: