我正在使用monaca ide开发一个简单的应用程序,并使用onsenui的slinding菜单我发现通常当我拍照片重新加载页面时,所以照片不会出现在页面上。似乎是随机的,有时有时不发生,我可以找到原因。有什么想法吗?
更新
在这里你可以看到控制器处理动作的地方:
var appControllers = angular.module('appControllers',[]);
appControllers
.controller('parkingCtrl', [
'$scope',
'appGlobals',
function($scope, appGlobals) {
$scope.snapPhoto = function() {
navigator.camera.getPicture (onSuccess, onFail, {
quality: 50,
destinationType: Camera.DestinationType.FILE_URI,
targetWidth: 100
});
//A callback function when snapping picture is success.
function onSuccess (imageURI) {
$scope.$apply(function(){
$scope.imageURI = imageURI;
});
}
//A callback function when snapping picture is fail.
function onFail (message) {
alert ('Error occured: ' + message);
}
}
])
答案 0 :(得分:1)
我想这会发生在Android上。
当您调用该功能拍照时,相机应用程序接管,现在您的应用程序在后台。如果你拍摄全局并且你的设备内存很小,你的设备将处于低内存状态,它必须杀死一些后台应用才能释放内存。在某些情况下,您的应用程序被终止,当您从相机应用程序返回时,您的应用程序将重新启动。
解决方法是限制图片的质量或尺寸。
这是对api的引用:
http://docs.phonegap.com/en/2.9.0/cordova_camera_camera.md.html#Camera
navigator.camera.getPicture(onPhotoDataSuccess,
onFail,
{ quality: 75,
allowEdit: true,
destinationType: destinationType.DATA_URL,
targetWidth: 100,
}
);
以下是完整的选项:
{ quality : 75,
destinationType : Camera.DestinationType.DATA_URL,
sourceType : Camera.PictureSourceType.CAMERA,
allowEdit : true,
encodingType: Camera.EncodingType.JPEG,
targetWidth: 100,
targetHeight: 100,
popoverOptions: CameraPopoverOptions,
saveToPhotoAlbum: false };
答案 1 :(得分:0)
但你的情况不同......
1)你的照片可能太大了。只有reload
页面,你应该hard reload
该页面
右键单击后退按钮