【问题标题】:Phonegap / Converting website for mobile usePhonegap / 转换网站以供移动使用
【发布时间】:2011-08-13 10:43:54
【问题描述】:

目前我正在为 Android 和 iOS 系统构建一个使用 phonegap 的应用程序。从本质上讲,它将是一个网站,但由于我需要通过 ajax(同源策略)发出跨域请求,我遇到了一些困难。我想知道在允许 PHP 的我自己的服务器上创建网站是否更好,然后在 phonegap 中使用包装器/框架来模拟该网站?这将如何运作?

帮助赞赏

【问题讨论】:

    标签: android ios mobile cordova mobile-website


    【解决方案1】:

    您根本不应该遇到这个问题。 PhoneGap 应用作为本地文件:// 页面加载到设备上,跨域安全策略不适用于它们。

    来自 PhoneGap 常见问题:

    问。我想为 phonegap 创建一个应用程序,以通过 AJAX 访问外部部署的 Web 服务。我该如何解决这个问题 XmlHttpRequest的跨域安全策略?

    A.跨域安全策略不影响PhoneGap 应用程序。由于 html 文件由 webkit 使用 file:// 协议调用,因此安全策略不适用。 (在 Android 中,您可以通过编辑 AndroidManifest.xml 将 android.permission.INTERNET 授予您的应用程序)

    【讨论】:

      【解决方案2】:

      如果您遇到跨域请求问题,请考虑使用 jsonp 之类的数据交换格式。您从哪里请求数据?

      【讨论】:

      • 对,我知道jsonp可以用。但是在我自己的服务器上使用 php 编写 web 应用程序,然后使用包装器或框架在应用程序中显示它会更容易吗?
      • 那没问题,但是你不需要PhoneGap。它只是一个普通的网站...您可以通过将其启动器图标放在主屏幕上来使其看起来像一个原生应用程序。
      【解决方案3】:

      如果我理解正确,您想为跨域服务创建一个 PHP 代理,以便您可以使用 phonegap 通过您的移动应用程序访问它?这是一件很常见的事情,它在 Flash 中也做了很多工作以克服跨域限制。

      对于我的一个演示,我需要从 Flash 访问 Google 图片。为此,我在我的服务器上创建了一个非常简单的 PHP 代理,名为 imageproxy.php。这是完整的代码:

      <?php
      readfile($_POST['url']);
      ?>
      

      是的,就是这样。所以在你的情况下,如果你在你的服务器上使用这个 PHP 代理,你会发送这个代理你的目标 URL 作为一个 post 变量,代理发出请求并通过 readfile() 返回响应。

      【讨论】:

      • 对,但我不能在 phonegap 中这样做,因为他们不允许在您的应用程序中使用 PHP?我将如何访问远程 php 脚本?使用 JSONP?
      猜你喜欢
      • 2023-03-19
      • 2013-01-30
      • 2011-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多