2014-09-14 3 views
2

이것은 phonegap, angularjs, iony, yeoman 및 grunt로 무언가를 구축 한 첫 번째 시간입니다. 응용 프로그램은 웹용으로 훌륭하게 작동하지만, 나는 phonegap을 통해 그것을 구축하려고 노력하고있다.phonegap 빌드 성공 후 window.phonegap 정의되지 않았습니다

$sudo grunt build 

이 모든 것을 잘 구축 및 응답은 다음과 같습니다 : 내가 취할 단계는

Done, without errors. 

Execution Time (2014-09-14 19:07:13 UTC) 
concurrent:dist 3m 31.6s _________________________________ 35% 
autoprefixer:dist 2m 9.1s ____________________ 22% 
concat:generated 2m 26.4s _______________________ 24% 
ngmin:dist   1m 24.3s _____________ 14% 
cdnify:dist    14s ___ 2% 
uglify:generated  8.8s __ 1% 
Total 10m 0.4s 

다음으로, 실행 거기에서

$ phonegap remote build android 

[phonegap] compressing the app... 
[phonegap] uploading the app... 
[phonegap] building the app... 
[phonegap] Android build complete 

내가는 .apk 파일을 다운로드 내 안드로이드 폰에서 열어.

문제는 phonegap이 어딘가에서 초기화되지 않고 window.phonegap이 정의되지 않았기 때문입니다. 여기

는 app.js에 window.phonegap에 대한보고에 대한 코드입니다 : 내가 지금까지 내가

<!-- build:js(.) scripts/vendor.js --> 
<script src="phonegap.js"></script> 

으로 알고 초기화가, index.html에서

var PhoneGapInit = function() { 
    this.boot = function() { 
    angular.bootstrap(document, ['mobileAppApp']); 
    }; 
    if (window.phonegap !== undefined) { 
    document.addEventListener('deviceready', function() { 
    this.boot(); 
    }); 
    } else { 
    alert('PhoneGap not found, booting Angular manually'); 
    this.boot(); 
    } 
}; 

angular.element(document).ready(function() { 
    new PhoneGapInit(); 
}); 

정보시의 중요한 어떤 조각 내가 빠졌어? 질문이 있으면 해당 config.xml 및 Gruntfile.js를 포함 할 수 있습니다. 미리 감사드립니다!

답변

1

오늘도 비슷한 문제가 발생했습니다. 내 프로젝트에는 두 가지 문제가있었습니다.

1) 우선 : <!-- build:js(.) scripts/vendor.js --> 블록 외부로 phonegap.js를 이동해야했습니다. 그렇지 않으면 grunt 빌드 작업이 모든 파일을 연결하고 vendor.js에 대한 참조로 바꿉니다. 그러나 phonegap.js는 Phonegap 빌드 프로세스 중에 만 추가되지만 HTML에는 참조가 없습니다.

2) 아마도 최근 (> 3.0) 버전의 phonegap에 맞설 것입니다. 범위가 cordova로 변경되었습니다.

if (window.cordova !== undefined) { 
document.addEventListener('deviceready', function() { 
this.boot(); 
}); 

3) 옵션에 코드를 변경합니다 당신은 phonegap.js에서 cordova.js에 대한 참조를 변경할 수 있습니다. PhoneGap Build는 파일 (phonegap.js 및 cordova.js)에 삽입하지만 phonegap.js는 더 이상 사용되지 않는 것으로 간주 될 수 있으며 이후 버전에서는 제거 될 수 있지만 두 파일 모두 동일한 코드가 포함됩니다.

이 문제가 해결되었습니다.

+1

당신은 신사입니다. 우리는 초기화 된 phonegap없이 앱을 2 개월 동안 만들었습니다. 그것은 완벽하게 작동했습니다. – robert

관련 문제