如何添加 window 消息事件监听器 - Android WebView
How to add window message event Listener - Android WebView
如何添加事件侦听器来处理 window
message 事件 WebView
。我试过了,
webView.evaluateJavascript("window.addEventListener('message', function (e) { Android.logData('HELLO')});", null);
但它不起作用。有什么办法可以实现吗?
探索之后,我没有找到任何方法可以在不向网站添加任何代码的情况下从 WebView
中的网站 运行 获取数据到应用程序。最后,我决定也对我的网站进行必要的更改。我就是这样做的:
在应用程序中
创建了 class
private class JsObject {
@JavascriptInterface
public void shareData(String data) {
Log.v(LOG_TAG, data);
}
}
将新的 class 作为 Javascript 接口添加到 WebView
的实例,名称为
ssWebView.addJavascriptInterface(new JsObject(), "Android");
此实例将添加到 WebView
的 window
对象中作为 Android
(名称,上述函数的第二个参数)
在网站中
在网站分享数据
window.Android && window.Android.shareData("This is the data from website");
如何添加事件侦听器来处理 window
message 事件 WebView
。我试过了,
webView.evaluateJavascript("window.addEventListener('message', function (e) { Android.logData('HELLO')});", null);
但它不起作用。有什么办法可以实现吗?
探索之后,我没有找到任何方法可以在不向网站添加任何代码的情况下从 WebView
中的网站 运行 获取数据到应用程序。最后,我决定也对我的网站进行必要的更改。我就是这样做的:
在应用程序中
创建了 class
private class JsObject {
@JavascriptInterface
public void shareData(String data) {
Log.v(LOG_TAG, data);
}
}
将新的 class 作为 Javascript 接口添加到 WebView
的实例,名称为
ssWebView.addJavascriptInterface(new JsObject(), "Android");
此实例将添加到 WebView
的 window
对象中作为 Android
(名称,上述函数的第二个参数)
在网站中
在网站分享数据
window.Android && window.Android.shareData("This is the data from website");