我需要帮助,我在这里无能为力。我已经用 durandaljs 开发了一个应用程序,并且一直在浏览器上进行测试,到目前为止,它的运行就像做梦一样!然后我尝试将应用程序部署到安卓设备上,一切都崩溃了!
我按照此处和此处的说明使用 Node.js 优化我的 Weyland 构建。我的 app 文件夹中有一个 main-built.js 文件,还有一个 build 文件夹,其中几乎包含 app 和 lib 文件夹中的所有内容(eek !!!)。所以第一个问题,我应该将什么复制到我的 phonegap android www 文件夹中;构建的内容还是我的初始应用程序的内容?
该指南说该构建包含一个自定义版本的 Almond,因此我不需要在我的应用程序中加载 requirejs(耶!),我只需将 requirejs 脚本标记更改为指向 main-built(哪个是 . /build/app/ 或 ./app 中的那个??)。
所以我在我的初始应用程序中使用了那个,现在我的 index.html 中只有两个脚本引用
<script type="text/javascript" src="phonegap.js"></script>
<script src="./app/main-built.js"></script>
在我的 main.js 中进行一点回溯;我一直在思考如何确保应用程序在触发 deviceready 并且加载 dom 之后才启动。我看到了这个youtube 视频,我从伙计们的代码中得到了启发,所以现在我的 main.js 在优化之前看起来部分像这样
requirejs.config({
paths: {
'text': '../lib/require/text',
'async': '../lib/require/async',
'domReady': '../lib/require/domReady',
'durandal': '../lib/durandal/js',
'plugins': '../lib/durandal/js/plugins',
'transitions': '../lib/durandal/js/transitions',
'knockout': '../lib/knockout/knockout-2.3.0',
'bootstrap': '../lib/bootstrap/js/bootstrap',
'jquery': '../lib/jquery/jquery-1.9.1',
'jpanelmenu': '../lib/jpanelMenu/jquery.jpanelmenu.min'
},
shim: {
'bootstrap': {
deps: ['jquery'],
exports: 'jQuery'
}
}
});
define(['domReady', 'durandal/system', 'durandal/app', 'durandal/viewLocator', 'scripts/dealtag'], function (domReady, system, app, viewLocator, dealtag) {
domReady(function () {
var useragent = navigator.userAgent.toLowerCase();
if (useragent.match(/android/) || useragent.match(/iphone/) || useragent.match(/ipad/) || useragent.match('ios')) {
document.addEventListener('deviceready', onDeviceReady, false);
}
else {
onDeviceReady('desktop');
}
});
function onDeviceReady(desktop) {
if (desktop !== 'desktop')
cordova.exec(null, null, 'SplashScreen', 'hide', []);
app.title = 'My App';
app.configurePlugins({
router: true,
dialog: true,
widget: true
});
app.start().then(function () {
//Replace 'viewmodels' in the moduleId with 'views' to locate the view.
//Look for partial views in a 'views' folder in the root.
viewLocator.useConvention();
....my own initialization code
});
}
});
所以回到优化后,我将build +我的css文件夹的内容复制到www文件夹中,然后运行phonegap local build android;然后我将它部署到我的 android 设备上。应用程序的第一页(注册页面)加载正常,在 logcat 中,我可以看到很多在浏览器控制台中可以看到的相同内容,包括我自己的一些 console.log 检查点。但是,当我单击链接转到任何其他页面时,我所看到的只是设备上的白屏以及 logcat 中永无止境的错误
有谁知道我做错了什么,因为很多人似乎正在使用 durandaljs 为 android 开发。提前感谢您提供的任何帮助。