扫描二维码 打开 小程序或是H5网页

最近在做一个的项目,有一个需求是扫码查看信息详情

扫描的情况可能是使用微信扫描,或是其他扫描

如果是微信扫描,则跳转到对应的小程序,

如果非微信扫码,这进入H5展示详细信息

 

目前需要解决的难题有一下几个:

  1. 微信扫码如何进入小程序
  2. 如果不是微信扫码,如何跳转到H5展示
  3. 生成二维码的数据该放那些内容

围绕以上问题;有一下接的几个方案可以解决

方案一:H5+微信小程序urlScheme

方案二:H5+微信小程序的普通二维码跳转小程序

方案三:使用微信小程序生成无限制二维码

首先去掉第三个方案,因为微信小程序二维码无法条状到H5,如果用浏览器扫描,则查看不了内容

其次去掉第二个方案,每个小程序urlScheme生成数量有限,10万封顶,这对于生成批量的二维码业务来说,早晚是会出问题的。不过在这里也简单描述一些,功能的实现:

前期准备

1.一个上线并且认证的小程序

2.一个H5站点

3.二维码参数生成参数为: xxx.com?id=xx

4.扫码后获取id 通过id 查询数据,并通过服务端生成对应的urlScheme(openlink) 一并放回来给前端

5.判断是否为微信环境 如果是微信环境 

是:跳转window.localtion.herf=openlink

否:在H5端展示资产详情

方案二:是最简单,也是可以解决当前问题的最佳选择

前期准备:

1.一个上线并且认证的小程序

2.一个H5站点 xxx.com

3.二维码参数生成参数为: xxx.com?id=xx

4.到微信小程序后台 配置 扫普通链接二维码打开小程序 【规则自己理一理】

配置参考:

H5 站点 xxx.com

配置的规则 xxx.com/mini

测试的配置 xxx.com/mini?id=xxx

我使用的是uniapp快速搭建H5+微信小程序测试

onLoad(options) {
	// console.log(options)
    //q这里是 测试配置的完成url  
	if(options.q){
		this.id=decodeURIComponent(options.q).split('=')[1]
		// 你的业务逻辑
	}
}

使用方案三的优势在于:只需要关注微信小程序不出问题,其他浏览器或是应用打开基本之后走H5,并在H5展示,使用微信扫描,直接可以打开小程序

具体注意事项,可参考微信小程序开发者文档;也可以留言

 

上一期:批量生成二维码,并展示板块,有一个更好的解决方案是,后端直接放回base64格式的数据,前端只需要渲染。完美解决

 

 

 

### 实现H5页面扫描二维码后自动跳转至微信小程序 为了实现在H5页面中通过扫描二维码并携带参数的方式跳转到微信小程序,可以按照以下方法操作: #### 方法概述 当用户扫描带有特定URL的二维码时,该URL应配置为能够触发微信客户端打开指定的小程序,并附带必要的查询字符串作为参数。具体来说,在构建用于生成二维码的URL时,需遵循一定的格式规范。 对于Vue项目中的`mine.js`文件提到的情况[^1],可以通过调整链接来包含额外的参数以便于后续处理。而在一般情况下,则应当采用标准的小程序scheme URL方案来进行设置。 #### 小程序Scheme URL 构建方式 根据描述的信息[^3],要创建一个能被识别为指向微信小程序的特殊URL形式,其基本结构如下所示: ```javascript location.href = 'weixin://dl/business/?appid=<your_app_id>&path=/pages/index/index?param=value'; ``` 这里的关键在于正确拼接`<your_app_id>`以及目标页面路径(即`/pages/index/index`),并且可以在`path`部分附加任何想要传递给小程序的数据项,比如ID或其他自定义字段。 #### Vue 页面实例代码展示 下面是一个简单的例子,展示了如何在一个基于Vue框架的应用里实现这一功能: ```html <!-- template --> <div id="app"> <!-- 假设这是用来显示二维码图片的地方 --> </div> <script src="https://cdn.jsdelivr.net/npm/vue@2"></script> <!-- script --> <script type="text/javascript"> new Vue({ el: '#app', data () { return { qrCodeUrl: '' } }, created(){ this.generateQRCode(); }, methods:{ generateQRCode:function(){ const appId = "wxXXXXX"; // 替换成实际的小程序AppId const pagePath = "/pages/index/index?id=12345"; let url = `weixin://dl/business/?appid=${appId}&path=${encodeURIComponent(pagePath)}`; // 使用第三方库或API服务生成可视化的二维码图像 fetch(`http://api.qrserver.com/v1/create-qr-code/?size=150x150&data=${encodeURIComponent(url)}`) .then(response => response.blob()) .then(blob => { var img = document.createElement('img'); img.src = URL.createObjectURL(blob); document.getElementById("app").appendChild(img); }); this.qrCodeUrl=url; } } }) </script> ``` 此段脚本首先初始化了一个Vue组件,并在其生命周期钩子函数`created()`内调用了`generateQRCode()`方法。这个方法负责组装最终的scheme URL,并利用外部的服务接口获取对应的二维码图形表示。最后将生成好的二维码呈现在网页上供用户扫描
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值