0

我正在使用monaca ide开发一个简单的应用程序,并使用onsenui的slinding menu我发现通常当我拍照时重新加载页面,所以照片不会出现在页面上。似乎是随机的,有时会发生有时不会,我可以找到原因。任何想法?

更新:

在这里,您可以看到处理操作的控制器:

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);
            }
        }
    ])
4

2 回答 2

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 };
于 2014-04-02T02:42:20.033 回答
0

但你的情况不同..

1)你的照片可能很大。因此,reload您应该hard reload在该页面上右键单击后退按钮

于 2014-03-29T16:52:15.817 回答