我正在使用monaca ide开发一个简单的应用程序,使用onsenui的滑动菜单我发现通常当我拍摄照片时重新加载页面,所以照片不会出现在页面上。似乎是随机的,有时发生有时不发生,我能找到原因。任何想法?
更新:
这里你可以看到action是handle的控制器:
var appControllers = angular。模块("有一个",[]);
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);
}
}
])
我猜Android也是这样。
当你调用拍照函数时,相机应用会接管,现在你的应用在后台。如果你拍大照片,而你的设备内存小,你的设备将处于低内存状态,它必须杀死一些后台应用程序来释放内存。在某些情况下,你的应用程序被杀死,当你从相机应用程序返回时,你的应用程序重新启动。
一种解决方法是限制图片的质量或大小。
这是对api的引用:
http://docs.phonegap.com/en/2.9.0/cordova_camera_camera.md.html相机
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)你的PIC可能这么大。所以你不应该只对页面进行reload
,而应该对页面进行hard reload
右键点击返回键