天天看点

uniapp app,小程序,公众号h5调用扫一扫

(app,小程序)

uni.scanCode({

onlyFromCamera: true, //只能通过相机扫码

success: function (res) {

if(res.result.indexOf("%")!=-1){

var str = res.result.substr(50);

let strs= str.split("-");

that.account = strs[0];

that.content = strs[1];

}

}

});

(公众号H5)

第一步-> 进入项目目录

npm install jweixin-module --save

第二步-> 在需要使用的页面

import jweixin from 'jweixin-module'

scancode(){

 var that = this;

// #ifdef H5

let url = window.location.href.split('#')[0]; // 很重要

let urls = url.split('#')[0];

that.$request({

url:'wx-gzh-sign',

methods:'GET'

},{

url:url

}).then(res=>{

let data = res.data.data;

jweixin.config({

debug: false, //测试时候用true 能看见wx.config的状态是否是config:ok

appId: data.appid, // 必填,公众号的唯一标识(公众号的APPid)

timestamp: data.timestamp, // 必填,生成签名的时间戳

nonceStr: data.noncestr, // 必填,生成签名的随机串

signature: data.sign, // 必填,签名

jsApiList: ['scanQRCode'], // 必填,需要使用的JS接口列表

});

jweixin.ready(function (res) {

jweixin.checkJsApi({

jsApiList: ['scanQRCode'], // 需要检测的JS接口列表,所有JS接口列表见附录2,

success: function(res) {

jweixin.scanQRCode({

needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,

scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有

success: function (res1) {

if(res1.resultStr.indexOf("%")!=-1){

var str = res1.resultStr.substr(50);

let strs= str.split("-");

that.account = strs[0];

that.content = strs[1];

}

// window.location.href = res1.resultStr; //安卓机型跳转渲染有问题 所以要加这句

}

});

}

});

});

jweixin.error(function (res1) {

console.log("接口调取失败:"+res1);

});

});

// #endif