android

android jsbridge怎样调用原生方法

小樊
111
2024-11-21 14:18:35
栏目: 编程语言

在Android中,通过JavaScript Bridge,您可以从JavaScript代码调用原生Android方法。以下是实现此功能的步骤:

  1. 创建一个本地对象,供JavaScript调用:

首先,在Android项目中创建一个类,该类将包含要从JavaScript调用的原生方法。确保此类的实例是单例的,以避免创建多个实例。

public class JavaScriptInterface {
    private static JavaScriptInterface instance;

    private JavaScriptInterface() {
    }

    public static synchronized JavaScriptInterface getInstance() {
        if (instance == null) {
            instance = new JavaScriptInterface();
        }
        return instance;
    }

    //这个方法将被JavaScript调用
    @JavascriptInterface
    public void showToast(String message) {
        Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();
    }
}

注意我们在方法上添加了@JavascriptInterface注解。这是必需的,因为它告诉WebView启用JavaScript接口。

  1. 将本地对象添加到WebView:

在您的Activity或Fragment中,将创建的本地对象添加到WebView的JavaScript接口中。

WebView webView = findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);

// 添加JavaScript接口并加载URL
webView.addJavascriptInterface(JavaScriptInterface.getInstance(), "Android");
webView.loadUrl("file:///android_asset/index.html");
  1. 从JavaScript调用原生方法:

现在您可以在HTML文件中的JavaScript代码中调用刚才创建的原生方法了。

<!DOCTYPE html>
<html>
<head>
    <title>Call Android from JavaScript</title>
    <script type="text/javascript">
        function callAndroidToast() {
            Android.showToast("Hello from JavaScript!");
        }
    </script>
</head>
<body>
    <button onclick="callAndroidToast()">点击显示toast</button>
</body>
</html>

当用户点击按钮时,将调用Android原生方法showToast(),显示一条Toast消息。

0
看了该问题的人还看了