私は助けが必要です、私はここで頭が痛いです。durandaljs を使用してアプリを開発し、ブラウザーでテストを行っていますが、これまでのところ夢のように動作します! 次に、アプリを Android デバイスにデプロイしようとすると、すべてが崩壊します。
こことここの指示に従って、Node.js を使用して Weyland でビルドを最適化しました。app フォルダー内に main-built.js ファイルを取得し、app フォルダーと lib フォルダー内のほとんどすべてを含む build フォルダーを取得します (eek!!!)。最初の質問は、phonegap android www フォルダーに何をコピーするかです。ビルドの内容または最初のアプリケーションの内容?
ガイドによると、ビルドには Almond のカスタム バージョンが含まれているため、アプリに requirejs を読み込む必要はなく (イェイ!)、requirejs スクリプト タグを変更して main-built (. /build/app/ または ./app?? 内のもの)。
そのため、最初のアプリで 1 つを使用します。現在、index.html には 2 つのスクリプト参照しかありません。
<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
});
}
});
最適化後に戻って、最適化に含まれていなかったビルド + 私の css フォルダーの内容を www フォルダーにコピーし、phonegap local build android; を実行します。次に、これを Android デバイスにデプロイします。アプリの最初のページ (登録ページ) は正常に読み込まれ、logcat では、独自の console.log チェック ポイントのいくつかを含む、ブラウザー コンソールで確認できるものと同じ内容が多数確認できます。ただし、リンクをクリックして他のページに移動すると、デバイスに白い画面が表示され、logcat で次のような終わりのないエラーが表示されるだけです
durandaljsを使用してAndroid用に開発している人がたくさんいるようです。ご協力いただきありがとうございます。