도움이 필요합니다. 끝내줍니다. durandaljs로 앱을 개발했으며 브라우저에서 테스트를 해왔습니다. 지금까지는 꿈처럼 작동합니다! 그렇다면 안드로이드 장치에 응용 프로그램을 배포하려고하면 모든 지옥 느슨하게!Durandaljs/Phonegap 앱을 android에 배포
노드를 사용하여 Weyland로 빌드를 최적화하려면 here 및 here 지시를 따랐습니다. 내 app 폴더 안에 main-built.js 파일이 있고 app 폴더와 lib 폴더에 모든 것을 포함하는 빌드 폴더가 있습니다 (eek !!!). 그래서 첫 번째 질문, 내 phonegap 안드로이드 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을보고 나는 그렇게 다시이
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
});
}
});
같은 부분에 이제 최적화 보이는 내 main.js 전에 사람의 코드에서 큐했다 최적화 후, 나는 빌드의 내용 + 내 CSS를 폴더를 복사하는 www 폴더에 대한 최적화에 포함되지 않았고, phonegap 로컬 빌드 안드로이드 실행; 나는 이것을 안드로이드 장치에 배포합니다. 앱의 첫 번째 페이지 (등록 페이지)가 ok를로드하고 logcat에서 브라우저 콘솔에서 볼 수있는 것과 동일한 내용을 볼 수 있습니다. 그러나, 나는 다른 페이지로 이동하는 링크를 클릭, 내가 보는 모든 내 장치에 흰색 화면이며 결코
사람이 내가 잘못 뭐하는 거지 어떤 생각을 가지고 있습니까 로그 캣 오류를 끝없는에 다음과 같은 사람들의 coz로드는 durandaljs를 사용하여 android를 위해 개발하는 것처럼 보입니다. 당신이 줄 수있는 도움에 미리 감사드립니다.
비 빌드 응용 프로그램을 복사하려고 했습니까? 예 : 데스크톱 모드에서 원시 파일을 assets 폴더로 복사 했습니까? 일부 참조가 누락 된 것처럼 들립니다. addRow를 어디에서 호출하고 있습니까? 그 물건은 진부한가요? – zewa666
Hello zewa, 나는 적어도 내가 아는 것이 아니라면 addrow를 부르지 않는다. 예 최적화되지 않은 파일과 requirejs 등을 사용하여 응용 프로그램을 배포하려고 시도했습니다. 일부 파일에서 throw되는 requirejs 스크립트 오류가 발생하고 문제의 원인을 잘 설명하지 못합니다. –
그게 아니라면 유일한 차이점은 코르도바와 함께해야합니다. 다른 버전을 사용해 보셨습니까? – zewa666