微信开发 调取相机兼容苹果手机

项目需求 只能拍照并且每张照片都要获取定位

配置信息,参考微信官方开发文档

    // 调取相机
    var URL = location.href.split('#')[0];
    var shareConfig = {
        timestamp: Math.round(new Date() / 1000),
        nonceStr: Math.round(new Date() / 1000) + Math.random(),
        url: URL,
        shop_name: "",
        shop_id: "",
        share_url: ""
    };
    $.get(APICOM + "mobile/index.php?m=default&c=apicom&a=jsSign&noncestr=" + shareConfig.nonceStr + "&timestamp=" + shareConfig.timestamp + "&url=" + URL + "&refresh=", function(data, status) {
        var data = JSON.parse(data);
        //校验签名
        console.log(data);
        //微信配置
        wx.config({
            debug: false,
            appId: data.data.appid,
            timestamp: data.data.timestamp,
            nonceStr: data.data.noncestr,
            signature: data.data.sign,
            jsApiList: ['chooseImage', 'previewImage', 'uploadImage','getLocation']
        });
        //调取相机
        wx.ready(function() {
            //检测api权限是否生效
            wx.checkJsApi({
                jsApiList: ['chooseImage', 'previewImage', 'uploadImage','getLocation'],
                success: function(res) {
                }
            });
            var images={
                    localId:[],
                    serverId:[]
                };
            var zuobiao=[];
            $('.camera img').on('click',function(){
                var that=$(this);
                wx.chooseImage({
                    count: 1, // 默认9
                    sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有,指定压缩
                    sourceType: ['camera'], // 可以指定来源是相册还是相机,默认二者都有,指定相机
                    success: function(res) {
                        console.log(res);
                        //图片本地临时存储路径
//                       images.localId = res.localIds;
                         images.localId.push(res.localIds[0])
                        //选中图片在img中显示
                        that.prop('src', res.localIds[0]);
//                      alert(that.prop('src'))
                        //兼容苹果机直接显示图片的问题(只在苹果机起作用)判断机型为苹果手机
                        if(navigator.userAgent.indexOf('iPhone') > -1){
                            wx.getLocalImgData({
                                localId: res.localIds[0], // 图片的localID
                                success: function (res) {
                                    var localData = res.localData; // localData是图片的base64数据,可以用img标签显示
                                    that.prop('src', localData);
                                }
                                });
                        }
                        wx.getLocation({
                            type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
                            success: function (res) {
                                var  coordinate=[res.longitude,res.latitude];
                                zuobiao.push(coordinate);
    //                          latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
    //                          longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。
                                var speed = res.speed; // 速度,以米/每秒计
                                var accuracy = res.accuracy; // 位置精度
                            }
                        });
                        wx.uploadImage({
                            localId: res.localIds[0],
                            success: function (res) {
                            images.serverId.push(res.serverId);
                           },
                            fail: function (res) {
                              alert(JSON.stringify(res));
                            }
                       });
                    }
                });
            })
            var flag=true;
            //点击保存上传图片
            $('footer button').on('click',function(){
//              alert(stu)
                var name=$('.name').val(),
                    idcard=$('.IDcard').val(),
                    phoneNum=$('.phoneNum').val();

                if(name=='' || !regname.test(name) || idcard=='' || !regid.test(idcard) || phoneNum=='' || !regphone.test(phoneNum) ){
                    alert('用户信息格式不正确')
                    return;
                } 
                //首先确认是否选定了图片
                if (images.serverId.length < 4) {
                    alert('未选中图片');
                    return;
                }   
                var datas={
                    xy:zuobiao,
                    imgurl: images.serverId,
                    userName:$('.name').val(),
                    idNo:$('.IDcard').val(),
                    phone:$('.phoneNum').val(),
                    user_id:user_id,
                    type:1
                }
                save(datas,flag);
            })
        })
    });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值