javascript - 为 Mobile PhoneGap 应用构建 Dojo 1.7

标签 javascript mobile dojo cordova

我正在尝试构建 dojo 1.7 以在我的 phonegap 应用程序中使用。我目前正在使用 dojo 1.6.1。我通过转到 build.dojotoolkit.org 构建了当前的 dojo.js 文件并选择 dojox.mobile 下的所有内容以及 dojo.store.JsonRest 模块。效果很好。

我的问题是尝试创建一个配置文件来创建一个类似于我从 dojo 构建网站获得的构建。

我下载了 dojo 1.7 稳定版 src。 我从命令行进入 buildScripts 文件夹并尝试使用以下命令运行构建:

>build profile=path/myMobileProfile.js action=release releaseName=test

我使用了配置文件文件夹中的示例配置文件:

dependencies = {
    stripConsole: "normal",
    
    layers: [
        {
            name: "dojo.js",
            customBase: true,
            dependencies: [
                "dojox.mobile.parser",
                "dojox.mobile",
                "dojox.mobile.compat"
            ]
        },
        {
            name: "../dojox/mobile/_compat.js",
            layerDependencies: [
                "dojo.js"
            ],
            dependencies: [
                "dojox.mobile._compat"
            ]
        }
    ],

    prefixes: [
        [ "dijit", "../dijit" ],
        [ "dojox", "../dojox" ]
    ]
}

构建没有错误。从构建中生成的 dojo.js 然后被放入我的 phonegap 应用程序中。我将索引文件更改为以下内容只是为了测试:

<!DOCTYPE HTML>
<html>
<head>
<title>PhoneGap</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"/>
<meta http-equiv="cache-control" content="no-cache"/>
<meta http-equiv="pragma" content="no-cache"/>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojox/mobile/themes/android/android.css" type="text/css" media="screen" title="no title">
<script type="text/javascript" src="libs/dojo/dojo/dojo.js" djConfig="parseOnLoad:true"></script>
<script type="text/javascript" charset="utf-8" src="phonegap-1.1.0.js"></script>
</head>
<body style="background-color:white">
Phonegap
</body>
</html>

每次我运行该应用程序时,我都会看到一个白页。当我用我的工作副本替换 dojo.js 文件时,我看到了 Phonegap 输出。

我希望能够使用 dojo 1.7 移动版和一些新功能,例如 SpinWheel。

有人可以帮我构建吗?

谢谢

最佳答案

我遇到了同样类型的问题。我认为这与新的 AMD 加载程序有关。

似乎解析器没有解析声明性小部件,而是在等待按需解析,或者它永远不会被调用。

我确实找到了一些提到我们应该使用 dojo/ready 的文档,但无法让它与它和 phoneGap 一起工作。相同的代码在没有 phoneGap 的桌面上运行良好,这很奇怪。

查看实时文档:http://livedocs.dojotoolkit.org/dojo/ready

以及:http://livedocs.dojotoolkit.org/loader/amd

“要将加载程序置于 AMD 模式,请将异步配置变量设置为 truthy:

<script data-dojo-config="async:1" src="path/to/dojo/dojo.js"></script>
<script>
  // ATTENTION: nothing but the AMD API is available here
</script>

请注意,您只能在加载 dojo.js 之前设置异步标志,并且在 AMD 模式下,不会自动加载 Dojo 或任何其他库 - 完全由应用程序决定哪些模块/要加载的库。"

关于javascript - 为 Mobile PhoneGap 应用构建 Dojo 1.7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8318505/

相关文章:

php - 在 PHP 中执行 javascript

javascript - Dojo dijit.layout.TabContainer - 如何将类添加到选项卡?

javascript - 如何获取 dojo 网格中的列名称。

javascript - jQuery iframe-使用 iframe 时如何获取父窗口 URL?

javascript - 获取谷歌地图中点击标记的完整地址

javascript - 在 jQuery 库中预加载图像

javascript - 在移动 View (wordpress)中更改列顺序。有可能的?

android - 移动应用程序的 Google Play 订阅和免费试用自动取消/结束

ios - 在 Mac 上加载移动网站

javascript - Dojo 本地化 - 当本地化字符串包含单引号时,data-dojo-props 失败