我们正在为Android,iOS和Windows手机构建一个相当简单的应用程序,我们决定使用Titanium。
事实证明,目前Windows Phone支持似乎相当糟糕。因为我们需要在所有三个平台上都有一个功能齐全的地图,所以我们选择了WebView/leaflet
地图集成。通过建议Ti.App.fireEvent
和Ti.App.addEventListener
的文档进行通信,这些文档在iOS和Android上没有任何问题,但我们遇到的问题是Windows Phone没有注册任何事件或在应用程序和网页之间发送任何事件在WebView中加载。
我们可以错过什么,我们面临这个问题?
(使用的SDK是最近的,所以5.1.2,Windows 8.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/检查这是否是已知问题。如果不是,请创建一个票证,链接到此问题,同时在票证本身中提供可重现的代码,步骤和环境信息。不要忘记在此处放置票证链接,以便其他人可以与您一起观看。