angular项目结合微信扫一扫的js换成ts

js:
在index.html 引入

在typings.d.ts定义:
declare var wx:any;

ts:装东东 cnpm install weixin-js-sdk --save cnpm install @types/node --save-dev

代码加入:
declare var require: any;

var wx = require(‘weixin-js-sdk’);
注意:代码的位置

代码:

Scan(modal: HTMLElement) {
this.ele=modal;
let obj=this;
let urlCurrentPage = encodeURIComponent(encodeURIComponent(location.href.split(’#’)[0]));
let url = ‘borrowing/Scan’ + ‘/’ + urlCurrentPage;
console.log(url);
this.http.get(url).toPromise().then(
res => {
var wx = require(‘weixin-js-sdk’);
if (res != null && res.json().code == “0000”) {
let data = res.json().data;
let signature = data.signature;
let timestamp = data.timestamp;
let nonceStr = data.nonceStr;
//调用微信接口基本设置
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: ‘wx2b9d806c89ac57dc’, // 必填,公众号的唯一标识
timestamp: timestamp, // 必填,生成签名的时间戳
nonceStr: nonceStr, // 必填,生成签名的随机串
signature: signature,// 必填,签名
jsApiList: [‘scanQRCode’] // 必填,需要使用的JS接口列表
});
//调用扫一扫接口
wx.scanQRCode({
needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
scanType: [“qrCode”, “barCode”], // 可以指定扫二维码还是一维码,默认二者都有
success: function (res) {
var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
obj.isbn = result.substring(result.indexOf(",") + 1, result.length); //截取扫描结果,截取逗号后面的isbn
}
});
}
});
//在这里采用一个定时器,调用微信的时候会自动采用子线程,这时采用子线程的值,跑一个主线程,不然会页面出错
let timetemp= setInterval(()=>{
if(obj.isbn!="" && obj.isbn!=undefined){
this.borrowRecord();
clearInterval(timetemp);
}
else{
}
},200)
setTimeout(() => {
clearInterval(timetemp);
},20000);
};

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值