使用Tianium eventListerner/fireEvent与webview通信的最佳方式是什么

使用Tianium eventListerner/fireEvent与webview通信的最佳方式是什么,webview,titanium,Webview,Titanium,所以我正在开发一个使用webview显示数据的应用程序。目前,我正在尝试从webview获取数据,并将数据发送到webview。从webview获取数据似乎效果不错,但将数据发送回webview会形成问题 我使用fireEvents和Eventlisteners进行通信。它看起来像这样: webview:index.html // declared at the beginning of the html file Ti.App.addEventListener('sendToWebview',

所以我正在开发一个使用webview显示数据的应用程序。目前,我正在尝试从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事件似乎一直不起作用。奇怪的是,它有时似乎有效,有时无效,甚至当我回到有效的代码时,它似乎不再有效。
我做错了什么?有什么方法可以让它工作吗?

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

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

webview.evalJS('someJSFunction(例如,带有参数);');
evalJS('alert(“helloworld!”;');

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

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

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

webview.evalJS('someJSFunction(例如,带有参数);');
evalJS('alert(“helloworld!”;');

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

代码
{“someDataToWebview”}
是代码中真实JavaScript对象的占位符吗?如前所述,这将导致webview或Titanium出现异常,甚至两者都出现异常。当我尝试此操作时,会出现一个错误,即“Ti”在我的webview中不存在。有什么想法吗?代码
{“someDataToWebview”}
是代码中真实JavaScript对象的占位符吗?如前所述,这将导致webview或Titanium出现异常,甚至两者都出现异常。当我尝试此操作时,会出现一个错误,即“Ti”在我的webview中不存在。有什么想法吗?谢谢你的回复,我知道问题出在哪里了。webview似乎可以自行缓存以前的页面。这使得HTML中的javascript没有被执行。eventlisteners和fireEvents在webview中工作。问题是,它只在应用程序第一次启动或完全关闭并再次打开时才起作用。现在的问题是,如何清理/禁用webview的缓存?有什么想法吗?或者设置页面的缓存策略。。。并将此答案标记为正确,为您的缓存问题打开一个新问题。谢谢您的回答,我已经找出了问题所在。webview似乎可以自行缓存以前的页面。这使得HTML中的javascript没有被执行。eventlisteners和fireEvents在webview中工作。问题是,它只在应用程序第一次启动或完全关闭并再次打开时才起作用。现在的问题是,如何清理/禁用webview的缓存?有什么想法吗?或者设置页面的缓存策略。。。并将此答案标记为正确,为缓存问题打开一个新问题。