0

我有一个 Phonegap (Cordova 2.0.0) 应用程序,专为 Android 构建,使用 jQuery Mobile + Backbone.js 运行。当我在模拟器上测试它时,它可以正常工作(在浏览器中运行,出现 CSS 和 JS 等)。

当我对其进行签名并将其安装在非调试设备上时,它会运行但没有 CSS 和 JS(因此基本上显示了一个不运行 JS 的无样式 HTML 文档)。

我的应用程序的主体如下:

<!DOCTYPE html>
<html>
  <head>
  <title>My App</title>

    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" />
    <meta charset="utf-8">

     <link rel="stylesheet" href="libraries/jquery.mobile-1.1.1.min.css" />
     <link rel="stylesheet" href="assets/css/style.css" />

     <script src="http://localhost:8080/target/target-script-min.js#anonymous"></script>

    <script type="text/javascript" charset="utf-8" src="libraries/cordova-2.0.0-ios.js"></script>
    <script src="libraries/jquery-1.7.2.min.js"></script>
        <script src="libraries/underscore.js"></script>
        <script src="libraries/backbone-min.js"></script>
        <script src="libraries/backbone.localStorage-min.js"></script>
        <script src="libraries/detect.js"></script>
        <script type="text/javascript" src="libraries/sha1.js"></script>
    <script type="text/javascript" src="app.js"></script>           

    <script type="text/javascript">

          var jqmReady = $.Deferred();
        var deviceReady = $.Deferred();

        /**
         * on load - manages dependency between jquery mobile and phonegap
         */
        function onBodyLoad()
        {
          // get device
          $.os = {};
        $.os.android = navigator.platform.indexOf("android")>=0;
        $.os.ios = navigator.platform.indexOf("iPhone")>=0 || navigator.platform.indexOf("iPad")>=0;

        // listen to device ready
        if ($.os.android || $.os.ios) {
            document.addEventListener("deviceready", deviceReady.resolve, false);
        }
        else {
          // must be in a browser, so immediately resolve
          deviceReady.resolve();
        }
        }

        $(document).bind("mobileinit", jqmReady.resolve);
        $(document).bind("mobileinit", function() { console.log('mobileinit'); });
        $(document).bind('pageinit', function() { console.log('pageinit'); });

        // when jquery mobile and device ready, then fire
        $.when(jqmReady, deviceReady).then(function() {
          console.log('Ready');
        // disable push state: http://jquerymobile.com/demos/1.1.1/docs/pages/page-links.html
        $.mobile.pushStateEnabled = false;
        App.init();
      });

      onBodyLoad();

    </script>           
  </head>
  <body onload="" data-lat="" data-lng="">

有没有人遇到过这个?我想知道这是否与相对路径(而不是绝对路径)有关,或者我如何在 Eclipse 中将它打包在一起。此外,在 iPhone 上也可以正常工作。

谢谢。

4

0 回答 0