• 毕设制作:前端界面 2020-02-01


    应用mui制作webapp,在之前的基础上实现相机的开启,大部分时间浪费在相机权限的判断与开启。

    判断相机权限问题:

    //相机权限是否开启,
    if(plus.navigator.checkPermission('CAMERA') == 'undetermined' || plus.navigator.checkPermission('CAMERA') == 'denied'){
    openCamera();
    }

    相机权限开启:

    /*获取相机权限*/
    function openCamera() {
    var msg = "请在应用权限里设置允许使用相机权限";
    mui.confirm(msg, "开启相机权限", ["去开启", "取消"], function(e) {
    if(e.index == 0) {
    if(mui.os.ios) {
    plus.runtime.openURL("app-settings:CAMERA");
    } else {
    var main = plus.android.runtimeMainActivity();
    var Intent = plus.android.importClass("android.content.Intent");
    var Build = plus.android.importClass("android.os.Build");
    var Uri = plus.android.importClass("android.net.Uri");
    var intent = new Intent();
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    if(Build.VERSION.SDK_INT >= 9) { //系统8.0以上的
    intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
    intent.setData(Uri.fromParts("package", main.getPackageName(), null));
    } else if(Build.VERSION.SDK_INT <= 8) { //系统8.0以下的
    intent.setAction(Intent.ACTION_VIEW);
    intent.setClassName("com.android.settings", "com.android.setting.InstalledAppDetails");
    intent.putExtra("com.android.settings.ApplicationPkgName", main.getPackageName());
    }
    main.startActivity(intent);
    //
    }

    } else {}
    }, 'div')
    };

    经测试:小米、华为、vivo、苹果手机均可成功运行

    /*相机调用*/
    function getImage() {
    var c = plus.camera.getCamera();
    c.captureImage(function(e) {
    plus.io.resolveLocalFileSystemURL(e, function(entry) {
    console.log(e);
    var s = entry.toLocalURL() + "?version=" + new Date().getTime();
    console.log(s);
    document.getElementById("head-img").src = s;
    document.getElementById("head-img1").src = s;
    //变更大图预览的src
    //目前仅有一张图片,暂时如此处理,后续需要通过标准组件实现
    document.querySelector("#__mui-imageview__group .mui-slider-item img").src = s + "?version=" + new Date().getTime();
    }, function(e) {
    console.log("读取拍照文件错误:" + e.message);
    });
    }, function(s) {
    console.log("error" + s.message);
    if(plus.navigator.checkPermission('CAMERA') == 'undetermined' || plus.navigator.checkPermission('CAMERA') == 'denied'){
    openCamera();
    }
    }, {
    filename: "_doc/head.jpg"
    })

    }
    /*相册调用*/
    function galleryImg() {
    plus.gallery.pick(function(a) {
    plus.io.resolveLocalFileSystemURL(a, function(entry) {
    plus.io.resolveLocalFileSystemURL("_doc/", function(root) {
    root.getFile("head.jpg", {}, function(file) {
    //文件已存在
    file.remove(function() {
    console.log("file remove success");
    entry.copyTo(root, 'head.jpg', function(e) {
    var e = e.fullPath + "?version=" + new Date().getTime();
    document.getElementById("head-img").src = e;
    document.getElementById("head-img1").src = e;
    //变更大图预览的src
    //目前仅有一张图片,暂时如此处理,后续需要通过标准组件实现
    document.querySelector("#__mui-imageview__group .mui-slider-item img").src = e + "?version=" + new Date().getTime();;
    },
    function(e) {
    console.log('copy image fail:' + e.message);
    });
    }, function() {
    console.log("delete image fail:" + e.message);
    });
    }, function() {
    //文件不存在
    entry.copyTo(root, 'head.jpg', function(e) {
    var path = e.fullPath + "?version=" + new Date().getTime();
    document.getElementById("head-img").src = path;
    document.getElementById("head-img1").src = path;
    //变更大图预览的src
    //目前仅有一张图片,暂时如此处理,后续需要通过标准组件实现
    document.querySelector("#__mui-imageview__group .mui-slider-item img").src = path;
    },
    function(e) {
    console.log('copy image fail:' + e.message);
    });
    });
    }, function(e) {
    console.log("get _www folder fail");
    })
    }, function(e) {
    console.log("读取拍照文件错误:" + e.message);
    });
    }, function(a) {}, {
    filter: "image"
    })
    };

  • 相关阅读:
    测试数据不会造?Fake Data!
    Go面试题汇总
    数据存储的 timestamp 时间正确 但是 Laravel 取出来的时间慢的 8 小时(Lumen timezone 时区设置方法(慢了8个小时))
    nginx php和html伪静态
    laravel DB操作
    深度学习_tensorflow-gpu安装:Win10-64bit+ NVIDIA GeForce MX150
    clickhouse SQL查询语句 【译自Github 英文文档】
    ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
    elasticsearch max virtual memory areas vm.max_map_count [65530] is too low, increase to at le
    Pycharm 一键加引号
  • 原文地址:https://www.cnblogs.com/cc-9878/p/12249437.html
Copyright © 2020-2023  润新知