很久没有写博客了,之前换了一份工作,很久没有做Android开发了,现在转做前端开发了,记录一下遇到的问题及解决的方法。

  最近做微信小程序开发,遇到一个需求,后台管理系统生成的问卷和投票会有一个二维码,需要用微信扫码后自动打开微信小程序的问卷或投票详情页面。

  首先,每个问卷或投票都有一个唯一的id,使用vue-qr来生成二维码

  vue-qr安装:

npm install vue-qr --save

  安装完成后,在页面中引入vue-qr插件

<script>
import vueQr from "vue-qr";
export default {
components: {
vueQr,Clipboard
}
}
</script>

  引入完成后,在页面中使用vue-qr插件

1 <template>
2 <vue-qr
3 :text="dataForm.url"
4 :margin="0"
5 colorDark="#000"
6 colorLight="#fff"
7 :logoScale="0.3"
8 :size="100"></vue-qr>
9 </template>

  使用vue-qr插件后,需要动态设置二维码中的内容,我这里通过一个url地址+问卷或投票的id来动态生成二维码

 1 <script>
2 export default {
3 data() {
4 return {
5 dataForm: {
6 id: 0,
7 url: "",
8 },
9 };
10 },
11 methods: {
12 init(id) {
13 this.dataForm.id = id || 0;
14 this.dataForm.url = `https://xxxxx.cn/questionnaire-ids/${this.dataForm.id}`;
15 }
16 }
17 }
18 </script>

  那么现在,我们扫码二维码获得的内容就是前面的一段连接+问卷或投票的id。

  接下来进入微信小程序开发者后台,点击左侧开发下的开发管理,接下来点击开发设置Tab,如下图所示。

  向下拖动页面,直到看到 扫普通链接二维码打开小程序 标题,如下图所示

  点击右侧的添加按钮,配置普通链接二维码规则,如下图所示。

  设置二维码规则,可查看文件进行设置

  点击保存按钮,提示对应的文件没有保存到服务器的目录,这时下载效验文件,上传至服务器的打包目录下对应的文件夹中,如下图所示

  保存之后,回到二维码地址列表中,如果需要在微信小程序的正式版中使用,需要点击列表后面操作栏中的发布按钮,发布完成后就可以使用。

  接下来处理小程序页面的逻辑。在小程序对应的投票或问卷的详情页面,我们只需要拿到投票或问卷的id,然后通过后台接口,获取问卷或投票的详情内容显示出来就OK了。

  

 1   onLoad: function (options) {
2 wx.showLoading({
3 title: '努力加载中......',
4 })
5 if (options.q) {
6 let scan_url = decodeURIComponent(options.q)
7 let cp_id = scan_url.match(/\d+/)
8 wx.setStorageSync('scan_url', parseInt(cp_id[0]))
9 this.setData({
10 id: parseInt(cp_id[0]),
11 })
12 }
13 }

  这样就获取了id,然后就可以显示出问卷或投票的详情了。

  用测试机扫描后台管理页面中生成的二维码,可进入小程序的详情页面。

  

  

微信小程序扫描普通二维码打开小程序的方法的更多相关文章

  1. 微信小程序 - 配置普通二维码跳小程序

    普通二维码跳小程序规则: https://developers.weixin.qq.com/miniprogram/introduction/qrcode.html#%E5%8A%9F%E8%83%B ...

  2. 微信小程序条码、二维码生成模块

    代码地址如下:http://www.demodashi.com/demo/13994.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...

  3. 微信小程序,获取二维码

    微信小程序,获取二维码 找到一篇很实用的博客,他已经写得很详细了,自己也懒得写,亲测有效 参考网址

  4. 微信小程序之生成二维码

    最近项目中涉及到小程序的生成二维码,很是头疼,经过多次摸索,整理出了自己的一些思想方法,如有不足,欢迎指正. 首先完全按照小程序的结构依次填坑. pages--index.wxml <view ...

  5. PHP后端代码生成微信小程序带参数的二维码保存成jpg图片上传到服务器getwxacodeunlimit

    老板最近有点飘了,他要在PC端的网站放一个微信小程序的二维码,并且扫描这个二维码以后要跳到小程序对应的房源详情页. 这是微信官方给出的文档,连接地址:https://developers.weixin ...

  6. 微信小程序生成带参二维码

    需求:生成小程序中的海报,需要小程序二维码可以使用户保存到本地在朋友圈分享 生成二维码工具类代码如下: package com.aone.foottalk.action.wx.util; import ...

  7. php微信开发之带参数二维码的使用

    最近做微信PC端网页微信相关功能的开发,从一个新手的角度来说,微信公众号的文档还是不好理解的,网上找的帖子大都也都基本上是复制微信公众平台上给的文档,开发微信带参数二维码过程中还是遇到不少坑的,在此把 ...

  8. 使用扫描二维码打开app

    应该不少人遇到过这种需求,扫描二维码打开app如果用户没有这个app则提示它跳转. 用网页直接来调用app是不打可能的,必须原生那边先做一些配置. 首先,安卓和苹果的调用方法是不同的. 所以我们需要先 ...

  9. 微信公众平台中临时二维码的scene_id为32位非0整型

    原文:微信公众平台中临时二维码的scene_id为32位非0整型                                        微信公众平台中临时二维码的scene_id为32位非0整 ...

随机推荐

  1. 计算机网络之传输层UDP协议

    文章转自:https://blog.csdn.net/weixin_43914604/article/details/105453096 学习课程:<2019王道考研计算机网络> 学习目的 ...

  2. STM32程序异常——中断处理要谨慎

    问题背景 最近有一个新项目(车载项目),板子上除了原来的ARM + STM32F030K6Tx又多了一个8bit的mcu的单片机,这可真是嵌入式全家福了. 系统的主要核心工作是由arm来完成,但是在开 ...

  3. 【Docker】Maven打包SpringBoot项目成Docker镜像并上传到Harbor仓库(Eclipse、STS、IDEA、Maven通用)

    写在前面 最近,在研究如何使用Maven将SpringBoot项目打包成Docker镜像并发布到Harbor仓库,网上翻阅了很多博客和资料,发现大部分都是在复制粘贴别人的东西,没有经过实践的检验,根本 ...

  4. Qt Creator打造VScode one dark pro主题配色

    1.缘由 我之前习惯使用 vscode 进行开发,对 vscode 的 one dark pro 主题情有独钟.无奈公司需要使用 Qt Creator 进行日常开发,只能暂时舍弃 vscode,采用曲 ...

  5. CentOS 7 tmpwatch 2.11 版本变更,移除 cronjob 任务

    老版本(RHEL6) tmpwatch 原理 在 RHEL6 上,/tmp 目录的清理工作通常是交给 tmpwatch 程序来完成的,tmpwatch 的工作机制是通过 /etc/cron.daily ...

  6. [linux]centos7.4上升级python2版本到python3.6.5 【安装双版本,默认python3】

    版本声明 centos7.4 前言:linux上的python默认是版本2的,之前学django项目用的是3的版本 所以得升级下版本~ 1.下载python3.6.5 cd /usr/local/ w ...

  7. MyBatis-Plus 快速入门

    1.简介 MyBatis-Plus (简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 1.1.特性 无侵入:只做增强不做改变, ...

  8. Unity——技能系统(三)

    Unity技能系统(三) Unity技能系统(一) Unity技能系统(二) Demo展示 六.Buff系统 buff分为增益和减益buff,应该区分开来: /// <summary> / ...

  9. Flask WTForm disable choice field

    Flask disable choice field ChoiceField = { render_kw={'disabled':''} } form.my_field.render_kw = {'d ...

  10. 常见的yaml写法-CronJob

    CronJob其实就是在Job的基础上加上了时间调度,我们可以:在给定的时间点运行一个任务,也可以周期性地在给定时间点运行.这个实际上和我们Linux中的crontab就非常类似了.一个CronJob ...