gpt4 book ai didi

iphone - Sencha + PhoneGap

转载 作者:技术小花猫 更新时间:2023-10-29 10:12:59 26 4
gpt4 key购买 nike

我正准备使用 Sencha Touch + PhoneGap 为 iPhone 开发一个应用程序,我有几个非常基本的问题:

1)我想读取位于 http://abc.om/app/a3/ 位置的 XML 文件.我使用 Sencha 读取此 xml 但它给了我以下错误:

XMLHttpRequest cannot load the url. Origin is not allowed by Access-Control-Allow-Origin.

这是使用 Sencha 读取 XML 的正确方法吗?如果是,那么我该如何解决上述问题?有人说 Sencha 是客户端,它无法读取域外的 Xml - 这是真的吗?移动应用程序中会发生什么?我应该在这里使用 Phonegap 吗?

2)我正在为iPhone开发应用程序,我应该如何检查应用程序- 使用 Chrome?或者每次都使用 phonegap 然后在 iPhone 上检查它?

最佳答案

一般来说,PhoneGap 应用程序一旦部署到移动设备上就不会受到跨域安全限制。原因因您开发的平台而异,但对于 iPhone,这是因为您的本地 PhoneGap Assets 是使用 file:/// URI 加载到 iPhone 上的浏览​​器中的;这使您可以绕过跨域安全限制。如果您正在创建一个托管在服务器上的常规网站,那么您将受到此安全策略的限制。这是创建 PhoneGap 应用程序的好处之一。

  1. 我不是 100% 熟悉 Sencha,但是您可以在基本 XMLHttpRequest 对象之上使用任何框架在 PhoneGap 中进行跨域通信。无论是 Sencha、jQuery、xui、MooTools 等。

  2. 为了测试 PhoneGap 应用程序,我通常结合使用我的桌面浏览器和一些额外的工具来帮助我。在您的情况下,如果您在计算机上本地将 PhoneGap 应用程序加载到像 Safari 这样的浏览器中(它允许您从 file:/// URI 中创建 XHR),您将看不到十字-域问题。 Safari 是为数不多的允许您执行此操作的浏览器之一。或者,您可以在本地计算机上使用代理,让本地 Web 服务器发出网络请求并将它们代理回您的应用程序。我倾向于使用一个很棒的工具,叫做 sleight ,这是一个 node.js如果服务器在您的计算机上本地找不到所请求的 Assets ,它将反向代理请求到目标外部域的 Web 服务器。我将尝试为您展示一个使用 sleight 的示例:

    • 假设您的 PhoneGap 应用程序 Assets 位于 ~/src/www 下,应用程序位于 index.html 中
    • 同时假设您想从您的 PhoneGap 应用程序访问 abc.com 域

你会像这样使用花招:

$ cd ~/src/www
$ sleight target=abc.com

现在您有一个本地网络服务器正在运行,它可以提供您 www 目录下的所有内容。现在您可以从您的 index.html 页面将 XHR 发送到 http://abc.om/app/a3/ ,然后巧妙地将这些代理回给您。因此,您可以将浏览器指向 http://localhost:8088/index.html然后您将获得 PhoneGap 应用程序的 index.html。

Sleight 是 PhoneGap 开发的绝佳工具,因为它允许您在本地计算机上随时随地测试您的 PhoneGap 应用程序。

关于iphone - Sencha + PhoneGap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4732062/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com