【发布时间】:2017-10-21 19:57:02
【问题描述】:
所以我有一个使用官方 Cordova 相机插件的 Android 版 Cordova 应用程序。拍照时 Android 杀死后台 Cordova 任务后,应用使用 onResume 事件恢复应用状态。
我正在遵循 Cordova 文档中的最佳实践,但仍然无法正确完成。当用户拍照时,Android 会在后台终止 Cordova 任务,并且根据文档,相机插件应该返回带有相机插件状态的 pendingResult 对象。但这样的事情根本不会发生。我写了简单的调试代码:
事件像这样添加到应用程序中:
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
很明显,当 Cordova 应用程序重新启动时会调用 onResume 事件,但不会从官方 Cordova 相机插件返回 event.pendingResult。任何想法如何解决它?
我正在使用 Cordova 7.1.0 和 cordova-plugin-camera 版本 2.4.1,在运行 Android 5.0.2 的 LG L90 和运行 Android 6.0 的 LG G3 上进行了测试。
附言。还尝试像这样将事件侦听器上移一级:
function bodyLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
document.addEventListener("pause", onPause, false);
document.addEventListener("resume", onResume, false);
}
仍然没有运气。
【问题讨论】:
标签: android cordova phonegap onresume