그래서 공식 Cordova 카메라 플러그인을 사용하는 Android 용 Cordova 앱이 있습니다. 응용 프로그램은 사진을 찍을 때 안드로이드가 배경 코르도바 작업을 죽인 후 응용 프로그램 상태를 복원하기 위해 onResume 이벤트를 사용합니다.PhoneGap/Cordova 카메라 onResume이 빈 객체를 반환합니다.
나는 코르도바 문서에서 모범 사례를 따르고 있으며 제대로 수행하는 데 운이 없다. 사용자가 사진을 찍을 때 Android는 백그라운드에서 Cordova 작업을 중단하고 문서에 따르면 카메라 플러그인은 카메라 플러그인 상태로 pendingResult 객체를 반환해야합니다. 그러나 이런 일은 전혀 일어나지 않습니다. 이벤트는 다음과 같이 앱에 addedd된다
: 나는 간단한 디버깅 코드를 작성했습니다 ....
function onDeviceReady() {
document.addEventListener("pause", onPause, false);
document.addEventListener("resume", onResume, false);
... 좀 더 코드를
function onResume(event) {
console.log("on resume event fired !!!");
var storedState = window.localStorage.getItem(APP_STORAGE_KEY);
if(storedState) {
appState = JSON.parse(storedState);
str = JSON.stringify(appState, null, 4);
console.log("found previously stored state: "+str);
}
console.log(JSON.stringify(event, null, 4));
console.log(event.pendingResult);
}
콘솔 출력은 다음과 같습니다
on resume event fired !!! found previously stored state: { "takingPicture": true, "imageURI": "" } { "isTrusted": false, "action": "resume" } undefined
코르도바 앱을 사용할 때 명확하게 onResume 이벤트가 호출됩니다. 다시 시작되었지만 공식 Cordova 카메라 플러그인에서 event.pendingResult가 반환되지 않았습니다. 어떤 아이디어로 그것을 고치는 법?
Android 5.0.2 및 Android 6.0을 실행하는 LG G3에서 실행되는 LG L90에서 테스트 한 Cordova 7.1.0 및 cordova-plugin-camera 버전 2.4.1을 사용하고 있습니다.
ps. 또한 이동 이벤트 리스너를 다음과 같이 한 레벨 위로 올리려고 시도했습니다.
function bodyLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
document.addEventListener("pause", onPause, false);
document.addEventListener("resume", onResume, false);
}
여전히 운이 없습니다.
나는 당신을 사랑합니다,이 대답은 금입니다! 너는 너무 많이 @ peterPP1 –