【小程序内嵌H5扫描一维码/二维码】

这篇具有很好参考价值的文章主要介绍了【小程序内嵌H5扫描一维码/二维码】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一. 需求描述:小程序内嵌的H5工程里面扫描快递单上的一维码/二维码,并自动显示在页面上

效果图【小程序内嵌H5扫描一维码/二维码】

二. 实现方式:小程序web-view支持JSSDK接口中包含微信扫一扫接口,小程序内嵌的H5页面可以直接调起扫码功能,参考文档如下:文档链接

【小程序内嵌H5扫描一维码/二维码】

三. 代码实现:

1. 先安装jssdk(我是用的公司公共的sdk包,用法一样)

npm install weixin-js-sdk

2.在mounted调用权限配置方法,appId、timestamp、nonceStr、signature的值通过后端接口返回

   // 获取微信签名信息
    getWeChatInfo(){
        return new Promise((resolve,reject) => {
            let params = {
             //这里的url一定传当前页面路径
                url: window.location.href
            }
            this.$ajax("getWechatInfo",params).then((res)=>{
                let result = res.data;
                if(result.code === 0){
                    this.appId =result.data.appId
                    this.nonceStr =result.data.nonceStr
                    this.signature =result.data.signature
                    this.timestamp =result.data.timestamp
                    resolve();
                }else{
                    reject();
                }
            })
        })
    },

3.拿到微信相关信息,初始化微信配置

     initWeChat(){
           return new Promise((resolve,reject)=>{
            window.wx.config({
               debug: true, // 开启调试模式,调用的所有 api 的返回值会在客户端 alert 出来,若要查看传入的参数,可以在 pc 端打开,参数信息会通过 log 打出,仅在 pc 端时才会打印。
               appId: this.appId, // 必填,公众号的唯一标识
               timestamp: this.timestamp, // 必填,生成签名的时间戳
               nonceStr: this.nonceStr, // 必填,生成签名的随机串
               signature: this.signature,// 必填,签名
               jsApiList:[
                   'scanQRCode'
               ]
          });
          //如果要在微信初始化之后立马执行的行为就写ready里面,如果是需要用户触发的行为,可在用户触发的函数里去执行相关操作,无需写在ready里面
           window.wx.ready(()=>{
              window.wx.checkJsApi({
                   jsApiList:[
                            'scanQRCode'
                   ],
                   success:res=>{
                      resolve();
                   } 
               });
          });
            window.wx.error(res=>{
                 reject();
             });
          });
        },

注意点1:一定要从后端拿到正确的签名信息后,再进行微信初始化,否则config没拿到数据会报错
注意点2:开启调试模式,看config的返回:
config:ok----->微信初始化配置成功
config:无效签名----->可去微信签名校验网站校验后端返回的签名是否正确,微信 JS 接口签名校验工具
config:无效路径----->后端检查是不是域名没有加入白名单

   async mounted() {
        //一进页面拿到签名信息后就进行微信初始化
       await this.getWeChatInfo();
       this.initWeChat ()
    },

4.点击扫一扫按钮:执行扫一扫scanQRCode方法

 //扫一扫的点击事件
   scanFun(){
               //这个赋值很重要很重要,一定不能少,已踩坑
               let that = this
               window.wx.scanQRCode(
                    {
                      needResult:1, // 当needResult 为 0 时,微信处理扫码结果
                      scanType: ["barCode"],//一维码barCode,二维码qrCode
                      success: function (res) {
                           let result = res.resultStr; 
                          //扫描返回的成功结果
                           console.log('扫描成功的结果',result); 
                        //    处理二维码扫描结果
                        //    let MMM = result.split('=')[1]
                        //    that.express_id = eval('(' + MMM + ')')['k5']
                        //    处理一维码扫描结果
                        that.express_id = result.split(',')[1]
                       },
                       fail:function(err){
                         console.log('扫描失败',err);
                       }
                 }
              )
            },

注意点:因为success方法指向闭包,所以this属于闭包,由此在success回调函数里是不能直接通过this.express_id 去赋值,如果我们要使用的话,可以在闭包之外先把this赋值给另一个变量文章来源地址https://www.toymoban.com/news/detail-488607.html

到了这里,关于【小程序内嵌H5扫描一维码/二维码】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 扫描二维码进小程序指定页面

    1.在开发小程序时,有时会有 扫描二维码进入小程序的指定页面 的业务需求。 2.微信小程序提供了这种功能,具体实现可以分两步 (1) 后台配置 (2) 代码中获取跳转信息 1.首先需要在 小程序后台 - 开发管理 - 开发设置 下的 扫描二维码进小程序模块 下 配置二维码规则

    2023年04月09日
    浏览(41)
  • 微信扫描普通二维码进入小程序

    微信扫描普通二维码进入小程序的方法,和代码没有什么关系,主要是在 小程序平台 进行设置 1. 开发配置 开发 —— 开发管理 —— 开发设置 —— 扫普通链接二维码打开小程序 2. 配置规则 根据说明配置内容就行,后面有说带参数的配置和怎么在小程序里面获取参数 带参数

    2024年02月11日
    浏览(63)
  • vue页面动态生成二维码,扫描二维码跳转到微信小程序,同时传递参数

    最近领导提了个新的需求, 点击表格时,弹出一个二维码,微信扫描此二维码时,跳转到微信小程序,同时将所在行的id(即员工所在公司的id)传过去,这样员工在登录微信小程序时,根据此id就知道是哪个公司的员工登录或者注册 了! 刚开始想的是,直接把小程序的二维

    2024年02月11日
    浏览(74)
  • 小程序调用扫码接口,实现扫描二维码

    小程序实现扫描二维码,需要调用微信扫码的api,如下: wxml文件代码如下: js文件代码如下: 注意: success函数回调成功后的res值 res.result 所扫码的内容 res.scanType 所扫码的类型 res.charSet 所扫码的字符集 res.path 当所扫的码为当前小程序二维码时,会返回此字段,内容为二维码携带

    2024年02月04日
    浏览(35)
  • 扫描二维码进小程序指定页面(包解决!!)

    一,你需要知道的 1.在开发小程序时,有时会有 扫描二维码进入小程序的指定页面 的业务需求。 2.微信小程序提供了这种功能,具体实现可以分三步 (1)在微信小程序后台配置好 (2)如何跳转 (3)代码中 二,小程序配置 1.首先需要在 小程序后台 - 开发管理 - 开发设置

    2024年02月03日
    浏览(41)
  • 用户扫描普通二维码进入小程序指定页面详细步骤

    一、进入微信公众平台小程序开发管理—开发设置—扫普通链接二维码打开小程序—启用 二、添加规则:我这里二维码规则为前台项目地址,可自行修改。下载的校验文件放在了项目里面,根据要求需要放在该服务器域名根目录下面,我这里放在的是public文件(vue项目)下面

    2024年02月11日
    浏览(41)
  • 小程序扫描二维码获取网址,通过Jsoup进行解析

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 文章目录 前言 一、Jsoup是什么? 二、使用步骤 1.引入库 2.读入数据 总结 vx开发小程序使用扫一扫时不同二维码展示的东西不一样,需要进行解析 提示:以下是本篇文章正文内容,下面案例可供参考

    2024年02月12日
    浏览(39)
  • python 写个手机扫描二维码服务的小程序

    import qrcode import cv2 import pyautogui # 打开摄像头 cap = cv2.VideoCapture(0) while True: # 读取摄像头图像 ret, frame = cap.read() # 转换为灰度图像 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 二值化图像 ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) # 查找轮廓 contours, hierarchy = cv2.findContours(thresh,

    2024年02月16日
    浏览(36)
  • 微信小程序扫描普通二维码跳转到小程序指定页面

    二维码就相当于是一个链接 相当于我们点击一个链接跳转到另一个页面 只不过这里是扫码的形式 1、首先我们需要在微信公众平台的开发管理——开发设置,找到(扫普通链接二维码打开小程序),点击添加,会出现下面的页面,配置好之后点击保存就行了 2、配置好之后我

    2024年02月11日
    浏览(66)
  • uniapp写微信小程序实现二维码条形码扫描识别

    1.最重要的就是一个函数uni.scanCode() 下边是我的代码可以直接使用 上述代码就直接实现了扫描功能很简单记得定义下扫描结果!有啥问题随时@我

    2024年04月09日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包