首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在cordova中使用postMessage

无法在cordova中使用postMessage
EN

Stack Overflow用户
提问于 2013-12-12 23:44:09
回答 2查看 3.1K关注 0票数 4

在我们的cordova/phonegap-app中,我们使用iFrame来加载外部网站。为了与iFrame-content进行通信,我为两个站点(应用程序和网站)创建了一个使用iFrame.contentWindow.postMessage()-method的脚本。原因是在智能手机的系统浏览器中打开iframe内的外部链接。这个解决方案在cordova 2.3.0上运行良好。

今天,我已经将应用程序的cordova版本更新到了3.1.0,并从android-manifest中删除了一些权限。但是与iFrame-content的通信不起作用。显示以下错误错误-消息:

代码语言:javascript
复制
"Unable to post message to https://[domain]. Recipient has origin file://"

要将消息发布到IFrame,我使用以下代码:

代码语言:javascript
复制
$('#webViewIFrame').get(0).contentWindow.postMessage('message', host);

有谁知道为什么我的通信解决方案不适用于cordova 3.1.0?

EN

回答 2

Stack Overflow用户

发布于 2014-10-04 17:56:26

通常情况下,这应该是因为跨域问题。尝试使用以下命令:

代码语言:javascript
复制
$('#webViewIFrame').get(0).contentWindow.postMessage('message', '*');
票数 1
EN

Stack Overflow用户

发布于 2016-08-06 12:02:41

您将需要使用:

代码语言:javascript
复制
$('#webViewIFrame').get(0).contentWindow.postMessage('message',"*");

由于phonegap/cordova页面在"file://“和根据https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage”上提供服务

"...posting a message to a page at a file: URL当前要求targetOrigin参数为"*“。file://不能用作安全限制;将来可能会修改此限制。”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20547835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档