什么是使用Titanium eventListerner / fireEvent与webview进行通信的方法

时间:2013-04-15 10:29:56

标签: webview titanium

所以我正在开发一个使用webview来显示数据的应用程序。目前我正在尝试从中获取数据,并将数据发送到webview。似乎从webview获取数据工作正常,但将数据发送回webview会产生问题。

我使用fireEvents和Eventlisteners进行通信。它看起来像这样:

webview:index.html

// declared at the beginning of the html file
Ti.App.addEventListener('sendToWebview', function(data) {
  alert('alert in webview');
});

// fires when button is pushed
function onClick(){
  Ti.App.fireEvent('sendToTi', { "someDataToTi"  });
}

app.js

Ti.App.addEventListener('sendToTi', function(data) {        
  alert('alert in Ti');
  Ti.App.fireEvent('sendToWebview', { "someDataToWebview" });
});

sendToTi事件的作用是什么。在这里我总是得到警报。似乎不能一直工作的是sendToWebview事件。奇怪的是,有时似乎有效,有时候不行,甚至当我回到有效的代码时,它似乎不再起作用了。 我究竟做错了什么?有没有办法让它发挥作用?

1 个答案:

答案 0 :(得分:1)

您的“sendToTi”是正确的。但是你不能以这种方式向WebView发送事件。

要在WebView中执行JavaScript(发送事件),您可以使用

webview.evalJS('someJSFunction(with, parameters, for, instance);');
webview.evalJS('alert("Hello World!");');

不需要EventListeners(特别是没有应用程序范围的事件侦听器)。