Android-With-JavaScript

Android-With-JavaScript

JavaScript调用Android的方式

使用WebView的JavaScript接口

如果你在Android应用程序中使用WebView来显示网页内容,你可以通过WebView的JavaScript接口实现JavaScript和Android原生代码之间的通信。

在Android中,你可以使用addJavascriptInterface()方法将Java对象公开给JavaScript,从而使JavaScript能够调用Java方法。

例如,在Android的Java代码中,你可以创建一个包含需要被调用的方法的Java对象:

public class JavaScriptInterface {
    @JavascriptInterface
    public void showToast(String message) {
        Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
    }
}

然后在WebView中启用JavaScript和添加JavaScript接口:

WebView webView = findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new JavaScriptInterface(), "Android");

在JavaScript中,你可以使用"Android"对象来调用Java方法:

Android.showToast("Hello from JavaScript!");

使用Google的WebViewJavascriptBridge

  1. Google的WebViewJavascriptBridge库提供了更灵活的方式来进行JavaScript和Android之间的通信。你可以使用桥接库发送消息和调用方法,而不必直接操作WebView的JavaScript接口。

首先,在Android的Java代码中初始化桥接库:

WebView webView = findViewById(R.id.webview);
WebViewJavascriptBridge bridge = new WebViewJavascriptBridge(webView, new ExampleHandler());

然后,在JavaScript中,你可以通过发送消息和调用方法与Android进行交互:

// 发送消息到Android
bridge.send('Hello from JavaScript!');

// 调用Android方法
bridge.callHandler('showToast', 'Hello from JavaScript!', function(response) {
    console.log('Response from Android: ' + response);
});

在Android中,你需要实现ExampleHandler类来处理来自JavaScript的消息和方法调用。

这两种方法都可以实现JavaScript和Android之间的通信,选择哪种方式取决于你的具体需求和应用场景。如果你只是简单地在WebView中显示网页,并且只需要一些简单的交互,使用WebView的JavaScript接口可能是最简单的方式。如果你需要更高级的功能和更灵活的通信方式,使用JavaScript桥接库可能更适合你的需求。