use*_*950 14 iphone ios sencha-touch cordova
我即将使用Sencha Touch + PhoneGap为iPhone开发应用程序,我有一些非常基本的问题:
1)我想读取位于http://abc.om/app/a3/位置的XML文件.我使用Sencha来读取这个xml,但它给了我以下错误:
XMLHttpRequest无法加载url.Access-Control-Allow-Origin不允许使用Origin.
这是使用Sencha读取XML的正确方法/方法吗?如果是,那我该如何解决上述问题呢?有人说Sencha是客户端,它无法读取域外的Xml - 这是真的吗?移动应用程序会发生什么?我应该在这里使用Phonegap吗?
2)在我为iPhone开发应用程序时,我应该如何检查应用程序 - 使用Chrome?或者每次使用phonegap然后在iPhone上查看?
fil*_*maj 35
通常,PhoneGap应用程序在部署到移动设备后不会受到跨域安全限制的影响.原因各不相同,具体取决于您正在开发的平台,但对于iPhone,这是因为您使用file:///URI 将本地PhoneGap资产加载到iPhone上的浏览器中; 这允许您绕过跨域安全限制.如果您正在创建正在服务器上承载正规的网站,那么你是这个安全策略限制.这是创建PhoneGap应用程序的好处之一.
我不是100%熟悉Sencha,但您可以使用基本XMLHttpRequest对象之上的任何框架在PhoneGap中进行跨域通信.无论是Sencha,jQuery,xui,MooTools等.
为了测试PhoneGap应用程序,我通常使用桌面浏览器和一些额外工具的组合来帮助我.在您的情况下,如果您将计算机本地的PhoneGap应用程序加载到Safari之类的浏览器(允许您从file:///URI中创建XHR ),您将看不到跨域问题.Safari是少数允许您执行此操作的浏览器之一.或者,您可以在本地计算机上使用代理,让本地Web服务器发出网络请求并将其代理回应用程序.我倾向于使用一个名为sleight的强大工具,它是一个node.js Web服务器,如果服务器无法在您的计算机上本地找到所请求的资产,它将反向代理对目标外部域的请求.我将尝试为您设置一个使用sleight的示例:
你会像这样使用:
$ cd ~/src/www
$ sleight target=abc.com
Run Code Online (Sandbox Code Playgroud)
现在,您运行的本地Web服务器可以提供www目录下的所有内容.现在,您可以从index.html页面将XHR发送到http://abc.om/app/a3/,并且可以将这些内容代理给您.因此,您可以将浏览器指向http:// localhost:8088/index.html,然后您将获得PhoneGap应用程序的index.html.
Sleight是PhoneGap开发的绝佳工具,因为它允许您在计算机上本地测试您的PhoneGap应用程序.
| 归档时间: |
|
| 查看次数: |
12155 次 |
| 最近记录: |