Onsenui:滑动菜单+相机

时间:2014-03-29 16:40:57

标签: javascript onsen-ui monaca

我正在使用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);
            }
        }
    ])

2 个答案:

答案 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该页面    右键单击后退按钮