【问题标题】:Onsenui: sliding menu + cameraOnsenui:滑动菜单+相机
【发布时间】:2014-03-29 16:40:57
【问题描述】:

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

更新:

在这里你可以看到action所在的控制器:

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

【问题讨论】:

    标签: javascript onsen-ui monaca


    【解决方案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 };
    

    【讨论】:

    • 感谢您的回答@Tamura。是的,我所做的与您向我展示的代码类似,并且我在 android 设备(moto g)上进行了测试。这是我的代码:navigator.camera.getPicture (onSuccess, onFail, { quality: 50, destinationType: Camera.DestinationType.FILE_URI, saveToPhotoAlbum: true }); 我试图降低质量和目标宽度/高度,但没有成功。我的代码可能有问题吗?
    • 我已将控制器中的代码添加到问题中。谢谢!
    【解决方案2】:

    但你的情况不同..

    1) 你的照片可能很大。所以只插入了reloading 页面,你应该hard reload 那个页面 右键单击返回按钮

    【讨论】:

    • 这是一个移动应用,没有右键。无论如何,问题是页面不应该重新加载。
    • 好的,您能否在您的问题中进行 FIDDLE 表示和链接
    • 我想你不明白我在说什么。正如我之前所写,我在询问 monaca IDE 上原生应用程序(不是浏览器的 Web 应用程序)的移动框架问题。这不能在 jsfiddle 上表示。还是谢谢。
    猜你喜欢
    • 1970-01-01
    • 2014-09-02
    • 2018-01-31
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    • 2013-05-28
    • 1970-01-01
    相关资源
    最近更新 更多