使用Phonegap Build构建后,Phonegap AJAX请求无法在Android设备上运行

时间:2015-12-23 14:35:37

标签: android angularjs ajax cordova phonegap-build

我的问题:

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

重要说明:

  • 我做了白名单described here
  • 它正在使用Phonegap Develop应用程序(在iOS和Android上)
  • 只有对我的API的调用似乎不起作用。 (举个例子,我做了一个登录界面,但我没有回复)
  • 我在AJAX请求中使用notification-alert进行了错误回调。 这也仅适用于Phonegap开发者应用。

我采取的步骤:

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

依赖项的版本:

  • AngularJS v1.2.13(angular.js,angular-animate.js,angular-route.js)
  • Bootstrap v3.3.6
  • jQuery v1.11.3
  • Laravel 5.1(用于API开发)

1 个答案:

答案 0 :(得分:2)

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

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

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

  3. 在#1上,这里是一个可以帮助您入门的样板Phonegap--Generic-Boilerplate7此外,以下博客文章将用于开发并让您熟悉所需内容。
    An HTML Boilerplate for Phonegap
    使用两者作为制作参考,但不发布

    在<2>,作为 Joerge jcesarmobile 提到您可能需要将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 -->
    

    注意您的应用程序现在已不确定。由您来保护您的APP。
    将以下内容添加到您的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传输代码。

    此外,如果有任何问题有助于解决您的问题,请告诉我们。