【问题标题】:Phonegap AJAX requests not working on Android device after build with Phonegap Build使用 Phonegap Build 构建后,Phonegap AJAX 请求在 Android 设备上不起作用
【发布时间】:2015-12-23 14:35:36
【问题描述】:

我的问题:

使用 Phonegap Developer 应用程序进行开发时,一切正常。但是在我使用 Phonegap Build 构建我的应用程序后,我的 AJAX 请求似乎不起作用。

重要提示:

  • 我做了白名单described here
  • 它与 Phonegap Develop 应用程序(在 iOS 和 Android 上)一起使用
  • 似乎只有对我的 API 的调用不起作用。 (举个例子,我做了一个登录屏幕,但我没有得到任何回应)
  • 我在带有通知警报的 AJAX 请求中进行了错误回调。 这也只适用于 Phonegap 开发者应用程序。

我采取的步骤:

  • 创建应用并使用 Phonegap Develop 应用对其进行测试
  • 压缩我的项目并将其上传到 Phonegap Build
  • 在 Phonegap Build 中重建我的项目以获取最新版本
  • 用二维码扫描项目
  • 安装项目并运行应用程序

依赖版本:

  • AngularJS v1.2.13(angular.js、angular-animate.js、angular-route.js)
  • 引导程序 v3.3.6
  • jQuery v1.11.3
  • Laravel 5.1(用于 API 开发)

【问题讨论】:

  • 您是否将 ajax url 列入白名单?
  • 您必须安装白名单插件并配置它以允许与您的服务器连接
  • @jcesarmobile,这是将 Phonegap Developer app 框架用于 Phonegap Build 的常见错误。观看。

标签: android angularjs ajax cordova phonegap-build


【解决方案1】:

@JustDevelop,
您犯了两 (2) 个常见错误。

  1. 首先,您不能使用通过 Phonegap 桌面应用程序 创建的文件,并在 Phonegap Build 上使用这些文件。您可以通过 Phonegap CLI 使用这些文件,但不能通过 Build。它的工作方式不同。您需要从自己的样板或已知的工作样板开始。

  2. 您将需要使用whitelist 系统,但它在三 (3) 年内发生了很大变化。不要关注超过 6 个月的任何帖子、博客或建议 - 截至今天 (2015-12-23)

关于#1,这里是帮助您入门的样板Phonegap--Generic-Boilerplate7 此外,以下博客文章将适用于开发并让您熟悉您的需求。
An HTML Boilerplate for Phonegap
将两者用作生产的参考,但不要发布

在 #2 中,正如 Joergejcesarmobile 所暗示的,您可能需要将 whitelist 系统添加到您的应用程序中。如果您的 index.html 中有内联或阻止 Javascript,则需要使用 CSP如果没有,那么你只需要使用带有过滤器的whitelist插件。如果没有,那么带有过滤器的whitelist插件可能就足够了。

内联 javascript <button onclick="doSomething();">do something</button>

阻止 javascript <script>doSomething() function() {return something;}</script>

如果您确实有 whitelist 问题,请使用本指南和以下代码:

HOW TO apply the Cordova/Phonegap the whitelist system

将此添加到您的config.xml

<plugin name="cordova-plugin-whitelist"      source="npm" spec="1.1.0" />
<allow-navigation href="*" />
<allow-intent href="*" />
<access origin="*" /> <!-- Required for iOS9 -->

请注意,您的应用现在不安全。保护您的应用程序由您决定。
将以下内容添加到您的 index.html 这是您的 CSP 修复。

<meta http-equiv="Content-Security-Policy" 
         content="default-src *; 
                  style-src * 'self' 'unsafe-inline' 'unsafe-eval'; 
                  script-src * 'self' 'unsafe-inline' 'unsafe-eval';">

最后 FWIW,你可以考虑开一个 github 帐户。公共帐户是免费的。私人账户的收费。您可以将代码直接从计算机传输到 github,再传输到 Phongap Build。

另外,如果有什么帮助解决您的问题,请告诉我们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    相关资源
    最近更新 更多