我已经构建了一个PhoneGap应用程序,该应用程序使用与应用程序捆绑在一起的iframe,我正在尝试将if消息从iframe传递给父进程,当我运行时它似乎不起作用真正的iPad上的应用程序;但是当我在同一设备上的浏览器中运行应用程序时,它工作正常。
以下是我在iframe中使用的代码来发送消息,请注意我正在使用HammerJS捕获一些事件:
var domain = 'http://' + document.domain;
$('body').hammer().on("swipe", "", function(event) {
var message = event.gesture.direction;
parent.postMessage(message,domain); //send the message and target URI
});
以及我用来获取消息的代码:
window.addEventListener('message',function(event) {
alert(event.data);
},false);
答案 0 :(得分:3)
答案是使用“file://”作为域名,所以代码如下所示:
var domain = 'file://';
$('body').hammer().on("swipe", "", function(event) {
var message = event.gesture.direction;
parent.postMessage(message,domain); //send the message and target URI
});
答案 1 :(得分:1)
答案 2 :(得分:0)
您需要使用:
parent.postMessage(message,"*");
由于phonegap / cordova页面在" file://"并根据https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
" ...在文件的页面上发布消息:URL当前要求targetOrigin参数为" *"。 file://不能用作安全限制;此限制可能会在将来修改。"