加载在线 iframe 与之通信
WebView 加载的是一个在线的 iframe 内容,并且原生安卓/iOS 应用直接与这个 iframe 进行消息传递。我们可以利用 WebView 的 JavaScript 接口和 postMessage 方法来实现这一点。
安卓 (Android)
1. 设置 WebView 并启用 JavaScript
WebView webView = findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("https://iframe-example.com");
2. 创建 JavaScript 接口
public class WebAppInterface {
Context mContext;
WebAppInterface(Context c) {
mContext = c;
}
@JavascriptInterface
public void handleMessage(String message) {
// 处理来自 JavaScript 的消息
Log.d("WebAppInterface", "Received message: " + message);
}
}
3. 将接口添加到 WebView
webView.addJavascriptInterface(new WebAppInterface(this), "AndroidInterface");