Ti.App.fireEvent和eventListener无法在静态html / javascript中工作(Titanium Appcelerator - Windows Phone)

时间:2016-02-01 09:18:39

标签: webview windows-phone-8.1 titanium

我们正在为Android,iOS和Windows手机构建一个相当简单的应用程序,我们决定使用Titanium。

事实证明,目前Windows Phone支持似乎相当糟糕。因为我们需要在所有三个平台上都有一个功能齐全的地图,所以我们选择了WebView/leaflet地图集成。通过建议Ti.App.fireEventTi.App.addEventListener的文档进行通信,这些文档在iOS和Android上没有任何问题,但我们遇到的问题是Windows Phone没有注册任何事件或在应用程序和网页之间发送任何事件在WebView中加载。

我们可以错过什么,我们面临这个问题?

(使用的SDK是最近的,所以5.1.2,Windows 8.1)

1 个答案:

答案 0 :(得分:1)

您可以使用下面的示例代码

“logging.html”

<html>
    <head>
         <script>
             Ti.App.addEventListener("app:fromTitanium", function(e) {
                alert(e.message);
             });
         </script>
    </head>
    <body>
         <button onclick="Ti.App.fireEvent('app:fromWebView', { message: 'event fired from WebView, handled in Titanium'    });">fromWebView</button>
    </body>
</html>

“app.js”

var win = Ti.UI.createWindow();
var webview = Ti.UI.createWebView({
url: 'logging.html'
});
var button = Ti.UI.createButton({
title: 'fromTitanium',
height: '50dp',
width: '130dp'
});
button.addEventListener('click', function(e) {
Ti.App.fireEvent('app:fromTitanium', { message: 'event fired from    Titanium, handled in WebView' });
});
Ti.App.addEventListener('app:fromWebView', function(e) {
alert(e.message);
});
win.add(webview);
win.add(button);
win.open();

在项目中创建文件名“logging.html”并将html代码放在那里。并将代码放到“app.js”。

如果错误仍然存​​在,请在https://jira.appcelerator.org/检查这是否是已知问题。如果不是,请创建一个票证,链接到此问题,同时在票证本身中提供可重现的代码,步骤和环境信息。不要忘记在此处放置票证链接,以便其他人可以与您一起观看。