【问题标题】:Sencha Touch, Apigee JS SDK, and Phonegap working in browser but not IOSSencha Touch、Apigee JS SDK 和 Phonegap 在浏览器中工作但在 IOS 中工作
【发布时间】:2013-12-18 16:05:46
【问题描述】:

使用 - Sencha Touch 2.3、Apigee Usergrid JS SDK 和 PhoneGap 3.2。

我能够在浏览器中运行我的应用并完美访问 Apigee。

index.html:

`<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"
type="text/javascript"></script>
<script src="../lib/apigee.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true </script>
<!-- The line below must be kept intact for Sencha Command to build your application -->
<script id="microloader" type="text/javascript" src=".sencha/app/microloader/development.js"></script>`

这是我直接来自 Apigee Javascript SDK 的代码(同样在 index.html 中):

`<script type="text/javascript">
     var client = new Usergrid.Client({
         orgName:'orgname',
         appName:'sandbox',
         logging: true, 
         buildCurl: true
        });
</script>`

所以在我看来测试“client.URI”给了我“https://api.usergrid.com”的预期。一切都很好。

按钮中“client.URI”的图像。 http://minus.com/i/BtmXiuVxljsV

当我跑步时

$ sencha app build -run native

这是我遇到问题的地方。一切都很好,除了当我尝试配合 Apigee 时。当我这样做时,该应用程序不会加载到 IOS 模拟器中。在我的 phonegap 配置或“白名单”中,我使用“*”通配符打开了对所有内容的访问权限。我很确定这是可行的,因为 Google 地图 API 运行良好。我试图将“client.URI”测试放在警报中,所以当我单击一个按钮时,它会显示 URI。这同样适用于浏览器,但不适用于模拟器。该应用程序加载正常,但是当我单击按钮时没有任何反应。我希望这是有道理的。我想确保应用程序能够加载并且我可以尽可能独立地测试“client.URI”测试。同样,如果我尝试在加载时渲染它,那么应用程序甚至永远不会加载到模拟器中。

当我点击应该带有 URI 警报的按钮时,我会在 system.log 中看到:

` <Error>: __hid_dispatch_pthread_root_queue_create_block_invoke: specific=0x505c260 pthread_self=0xb0115000`

我可以继续在浏览器中开发并访问我的 Usergrid 后端,但我真的很想修复这个错误并确保我不会处理更大的架构问题。

谢谢大家。

【问题讨论】:

  • 你在ios模拟器中模拟的是什么版本的ios?
  • 用 6 再次尝试,得到了相同的结果。

标签: javascript api sencha-touch apigee


【解决方案1】:

可能会产生影响的一件事是尝试从 XCode 而不是从命令行运行模拟器。打开 Phonegap 制作并从那里运行的 .xcodeproj 文件。如果模拟器仍然无法启动,请告诉我们。

【讨论】:

  • 所以我运行了你提到的 xcodeproj 文件并得到了相同的结果。我确实使用 phonegap 命令行来创建 .xcodeproj 文件。完成后,我在 xcode 中打开并运行模拟器。再次,同样的结果。只是为了澄清模拟器确实使用命令行工具启动,只要我不对 Usergrid API 进行任何调用。我在按钮点击事件中放置了一个警报,这不是渲染。所以它似乎是特定于与 Usergrid 交互的东西。
【解决方案2】:

终于!谢天谢地,Android 提供了很好的调试帮助。我更改了路线并在 Android 上进行了尝试。

它告诉我找不到 Apigee.min.js 文件。似乎Phonegap在编译它时要么把它放在错误的地方,要么我一开始就这样做了(我很确定我知道它是哪个)

我把我的本地文件改成了这个:

 <script src="https://apigee.com/usergrid/sdk/usergrid.0.10.5.js"></script>

它现在可以在 IOS 和 Android 上运行。很奇怪,因为它以前在浏览器中运行得很好。

如果有人对我在将文件放入我的应用程序时出错的地方有任何反馈,请告诉我。正如你在上面看到的那样:

<script src="../lib/apigee.min.js"></script>

另外,如果有人对我应该继续使用 Apigee 作为源还是将文件添加到我的应用程序进行部署提出建议。

感谢大家的宝贵时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    • 2016-10-11
    • 2021-07-14
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 2021-05-10
    相关资源
    最近更新 更多