我需要幫助,我在我的智慧在這裏結束。 我開發了一個應用程序與durandaljs和我一直在瀏覽器上做我的測試,到目前爲止它的作品就像一個夢!然後我嘗試將應用程序部署到Android設備,所有地獄都打破了!部署Durandaljs/Phonegap應用程序到Android
我按照指示here和here來使用節點優化我的構建與Weyland。我的應用程序文件夾中有一個main-built.js文件,並且包含一個包含應用程序和lib文件夾中的所有內容的構建文件夾(eek !!!)。所以第一個問題,我該怎麼複製到我的phonegap android www文件夾;構建的內容或我最初的應用程序的內容?
該指南說構建包括一個自定義版本的杏仁,所以我不需要在我的應用程序中加載requirejs(耶!),我只需要將requirejs腳本標記更改爲指向主構建(哪一個./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 video,我把從人的代碼提示所以現在看起來優化我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開發人員。預先感謝您提供的任何幫助。
您是否嘗試將非構建應用程序意味着像桌面模式一樣的原始狀態複製到assets文件夾中?聽起來像一些引用缺失。你在哪裏調用addRow?該對象是否定義了? – zewa666
你好zewa,我至少不會說我知道的addrow。是的,我試圖用非優化文件和requirejs等來部署應用程序,這只是給我一個在我沒有創建的文件中引發的requirejs腳本錯誤,並且不是描述問題的源頭 –
那麼如果那不是幫助唯一的區別應該與科爾多瓦。你有沒有試過另一個版本? – zewa666