0

我正在尝试在 Phonegap/Cordova 应用程序中加载 Parse.com 的 JS SDK。

这是我的 www/index.html 的样子:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>

        <!-- Sets initial viewport load and disables zooming  -->
        <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui">

        <!-- Makes your prototype chrome-less once bookmarked to your phone's home screen -->
        <meta name="apple-mobile-web-app-capable" content="yes">
        <meta name="apple-mobile-web-app-status-bar-style" content="black">

        <!-- Include the compiled Ratchet CSS -->
        <link href="css/ratchet.css" rel="stylesheet">
        <script src="cordova.js" type="text/javascript"></script>
        <script src="js/jquery-1.11.3.min.js"></script>
        <script src="http://www.parsecdn.com/js/parse-1.4.2.min.js"></script>
        <script type="text/javascript">
            Parse.initialize("MY_APPLICATION_ID", "MY_JS_KEY");
        </script>
        <script src="js/ratchet.js"></script>
        <script src="js/main.js"></script>
    </head>
    <body onload="init()">

    </body>
</html>

我已经用Parse.com 的适当字符串替换了MY_APPLICATION_ID和。MY_JS_KEY

该应用程序在浏览器(Mac 上的 Safari)中加载良好,我能够成功地对 Parse Cloud 进行 API 调用。

但是,如果我使用 Cordova 打包应用程序并在移动设备(iOS/Android)上运行它,则无法从 parsecdn.com 加载 Parse JS SDK,因此出现此错误消息(例如在 Android 中):

10-17 06:03:42.382: I/chromium(11792): [INFO:CONSOLE(20)] "Uncaught ReferenceError: Parse is not defined", source: file:///android_asset/www/index.html (20)

我尝试在 Android Emulator 和真正的 iPhone 设备(通过 USB 连接到 Xcode)中运行,两者都无法对 Parse.com 进行 API 调用,并且还验证了这些设备具有活动的 Internet 连接。

奇怪的是,在 Mac 上使用 Safari 进行本地浏览时,它甚至可以成功地将对象上传和存储到 Parse.com。

我做错了什么?

4

1 回答 1

0

我通过在本地保存 Parse.js 并从那里加载而不是从 CDN 加载解决了这个问题。

看来这里真正的问题是 PhoneGap 无法正确加载远程 JS。

有些人建议之前加载所有远程脚本cordova.js,这在我的情况下也不起作用。

于 2015-10-17T12:38:18.773 回答