我正在尝试构建 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/