【问题标题】:How to get data from an external site inside a cordova application?如何从cordova应用程序内的外部站点获取数据?
【发布时间】:2014-11-19 17:24:23
【问题描述】:

场景:

我在angularJSioniccordova 3.5 提出了申请
此应用程序通过 iframe 加载网页,以逐步完成一些事情。此网站在其他网站上。

html的代码是:

<div id="IframeContainer">  

 <iframe src="URL" style="width:100%;height:90%" onLoad="checkforclose(this);"></iframe>

</div>

这个分步表单返回一个结果,cordova 应用程序需要知道表单中发生了什么。它可以返回一个 json、一个 text/plain 甚至是一个自动发布到另一个站点的 HTML(这与这个未回答的问题有关:Post and redirect FROM Web Api

这样说,在我的科尔多瓦应用程序中,我有一个 javascript 函数来关闭 iframe 并再次接管我的应用程序的控制权,检测 url 是否包含“关闭”一词。这是代码:

<script type="text/javascript">
function checkforclose(pageURL) { 
    var urlFrame = pageURL.contentWindow.location;
    if (urlFrame.href.indexOf('close') > -1) {
    window.location = "#/employees/";
        }
}   
</script>

问题:

尽量避免 CORS(所以我认为我无法在加载时读取 iframe 内容,或者我错了?),
不使用 jQuery(欢迎使用 AngularJS,甚至更多纯 JavaScript)
再次将控制权交给应用程序

如何获取分步外部表单返回的数据?


更新 1:
我尝试编写“onload”阅读(CORS 错误),并发布到 cordova-html 页面,但没有任何可观的结果。

【问题讨论】:

    标签: javascript angularjs cordova iframe cors


    【解决方案1】:

    一个可能的解决方案是Web messaging or cross-document messaging。这是blog post,有人使用此方法从 iframe 中加载的外部页面访问移动设备的摄像头。尽管这个人有相反的目标(从 Cordova 获取数据到 iframe 中加载的页面),但他们能够完成 iframe 中的页面和 Cordova 之间的跨域通信;这就是我相信你正在尝试做的事情。

    【讨论】:

    • 感谢乔希的回答。请不要发布链接答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    • 2012-03-04
    相关资源
    最近更新 更多