x***@126.com
x***@126.com
  • 发布:2017-08-21 13:01
  • 更新:2019-03-01 18:04
  • 阅读:1752

【报Bug】Android N 7调用摄像头报错

分类:HTML5+

详细问题描述
[内容]
进行图片裁剪时,摄像头无法调用,如果是在线打包可以,如果嵌入到我原生代码中就不行。请问这是什么问题。
file://storage/emulated/0/Android/data/com.example.nyapp/documents/150305412663.jpg exposed beyond app through ClipData.Item.getUri();


            var cropper = null;  
            mui.plusReady(function() {  
                var currentId = plus.webview.currentWebview().userId;  
                document.getElementById("moreMenus").addEventListener("tap", function() {  
                    var editButtons = new Array();  
                    editButtons.push({  
                        title: "拍照",  
                        style: "default"  
                    });  
                    editButtons.push({  
                        title: "相册",  
                        style: "default"  
                    });  
                    plus.nativeUI.actionSheet({  
                        cancel: "取消",  
                        buttons: editButtons  
                    }, function(e) {  
                        var index = e.index;  
                        switch(index) {  
                            case 1:  
                                captureImage(); //拍照  
                                break;  
                            case 2:  
                                selectImage(); //相册选择  
                                break;  
                        }  
                    });  
                });  

                //确定裁切  
                document.getElementById("confirm_id").addEventListener("tap", function(e) {  
                    var dataURL = $("#userImage_id").cropper("getCroppedCanvas", {  
                        width: 300,  
                        height: 300  
                    });  
                    var imgUrl = dataURL.toDataURL("image/png", 1);  
                    //      $("#userImage_id").attr("src" , imgUrl);  
                    $("#userImage_id").cropper("replace", imgUrl);  
                    $("#userImage_id").cropper("clear"); //裁切完成取消显示裁切框  
                    $("#userImage_id").cropper("disable");  
                    //确定裁切后销毁裁切组件,标记一下,下次继续裁切时需要初始化一下裁切组件  
                    window.imageDisable = true;  
                    //禁用几个功能按钮  
                    $("button.toolbutton").prop("disabled", true);  

                    //向后台提供数据  
                    saveImage(imgUrl, "_doc/avterImage.jpg");  
                });  
                //初始化裁切组件  
                initImageCropper();  
            });  

            //拍照  
            function captureImage() {  
                var cmr = plus.camera.getCamera(2);  
                cmr.captureImage(  
                    function(path) {  
                        //将图片地址转换  
                        plus.io.resolveLocalFileSystemURL(path, function(entry) {  
                            var newPath = entry.toLocalURL() + "?version=" + Math.random();  
                            loadImage(newPath);  
                        });  
                    },  
                    function(error) {  
                        mui.toast(error.message);  
                    }, {  
                        filename: "_documents/"  
                    }  
                );  
            }  

            function initImageCropper() {  
                //初始化组件  
                cropper = $("#userImage_id").cropper({  
                    aspectRatio: 3 / 3,  
                    autoCropArea: 1,  
                    dragMode: "move", //设置移动图片、重新绘制选图区域  
                    cropBoxResizable: false,  
                    //movable: true,//是否允许移动裁切框  
                    zoomable: false, //是否允许放大图片  
                    guides: true, //取消显示裁切线中间的虚线网格  
                    minContainerWidth: 300,  
                    minContainerHeight: 300,  
                    minCanvasWidth: 300,  
                    minCanvasHeight: 300,  
                    crop: function(data) {  
                        //初始化  
                        window._scaleX = data.scaleX;  
                        window._scaleY = data.scaleY;  
                    }  
                });  
            }  

            //选择图片  
            function selectImage() {  
                plus.gallery.pick(function(path) {  
                    loadImage(path);  
                }, function(e) {  
                    mui.toast("没有选择图片.");  
                });  
            }  

            //确定选择图片  
            function loadImage(path) {  
                var img = document.getElementById("userImage_id");  
                img.src = path;  
                if(window.imageDisable == true) {  
                    $("#userImage_id").cropper("enable");  
                }  
                $("#userImage_id").cropper("replace", path);  
                //启用几个功能按钮  
                $("button.toolbutton").prop("disabled", false);  
                document.getElementById("userImage_id").onclick = function() {  
                    plus.runtime.openFile(path);  
                }  
            }  

运行环境
[系统版本]
[浏览器版本]
[IDE版本]
[mui版本]

附件
[代码片段]
[安装包]

联系方式
[QQ] 58227926
[电话]15559557126

2017-08-21 13:01 负责人:无 分享
已邀请:
坛子

坛子

sdk确实有这个bug

Android_Yanbin

Android_Yanbin - 我们不一样

请将离线工程的targetSdkVersion属性值设为<=21 或者不设置这个属性

Moe9YuKa

Moe9YuKa

我也出现这个问题了,最新版的,但是hbuilder的真机调试或者云打包就不会出现问题

skysowe

skysowe

安卓7调用摄像头拍摄二维码,一团黑,什么画面也没有~

9***@qq.com

9***@qq.com

我的也是摄像头调不起来- -

skysowe

skysowe

今天拿到了坚果Pro2,安卓7.1.1,第一次用摄像头的时候,是ok的,第二次之后就始终是一团黑,什么也看不到了~

在小米Mix2上也是如此,应该是安卓7的权限更高了?sdk需要更新!

Android_Yanbin

Android_Yanbin - 我们不一样

尝试一下最新的SDK ,并且设置targetSdkVersion 21

l***@163.com

l***@163.com

我也是,请问有结局的吗

该问题目前已经被锁定, 无法添加新回复