zoukankan      html  css  js  c++  java
  • 毕设制作:前端界面 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"
    })
    };

  • 相关阅读:
    机器学习:不平衡信息有序平均加权最近邻算法IFROWANN
    项目代码管理工具Git的总结
    jquery的返回顶端的功能实现
    web项目中登陆超时的功能实现(基于C#)
    存储过程:项目中使用存储过程的一个实例
    Vbox中unbuntu15.10与win10共享文件 及开启复制粘贴功能
    网站开发常用Sql语句
    维护基于ASP.NET的网站的学习-SqlCommand类介绍及存储过程
    本地向服务器上传文件的方式-FTP工具上传
    本地向服务器上传文件的方式-本地资源映射到服务器
  • 原文地址:https://www.cnblogs.com/cc-9878/p/12249437.html
Copyright © 2011-2022 走看看