在Android中,通过JavaScript Bridge,您可以从JavaScript代码调用原生Android方法。以下是实现此功能的步骤:
- 创建一个本地对象,供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接口。
- 将本地对象添加到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");
- 从JavaScript调用原生方法:
现在您可以在HTML文件中的JavaScript代码中调用刚才创建的原生方法了。
Call Android from JavaScript
当用户点击按钮时,将调用Android原生方法showToast()
,显示一条Toast消息。