很久很久以前〜大家可以在微信网页只使用微信开发标签应用小程序跳转按钮页面小号开的小程序,只有这样一个场景。
在实际业务中,我们希望在营销短信、邮件或者app等其他渠道向用户发送营销小程序,以便快速获取用户流量,完成引流和导购的目的。
他来了,他来了。微信小程序悄悄推出了一项新功能:支持URL scheme open applet是的。
新产品发布
URL scheme打开小程序,新品上线。快来试试吧。
大家可以从胡哥的角度一一阐述、总结、分析,也可以直接点击官方文档门户查看官方文档~
我们先来看看微信官方提供的两种打开微信小程序的方式以及相关的适用场景。
开放模式 适用场景 场景值 使用方式 评论
网址方案 短信、邮件 微信外网页打开小程序 1065 location.href = 'weixin://dl/business/?t= *TICKET*' 票据由服务器接口返回
微信网页内 1167 页面配置标签 配置云开发静态网站管理绑定的JS接口域名或域名下的网页
一定要区分两种方式的应用场景: URL scheme 适用于微信以外的页面,
适用于微信。
获取小程序 URL 方案
小程序的 URL 方案结构为weixin://dl/business/?t= *TICKET*,其中TICKET由服务器接口返回。服务器接口可以分为两种形式:HTTPS call和Cloud development call。
1、HTTPS调用
获取权限_令牌
请求地址:
GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
对应的appid和appsecret可以替换成自己对应的小程序。
返回的数据结构如下:
{
"access_token": "ACCESS_TOKEN",
"expires_in": 7200
}
获取 URL 方案
请求地址:
POST https://api.weixin.qq.com/wxa/generatescheme?access_token=ACCESS_TOKEN
请求参数:
属性 类型 默认值 必需的 解释
访问令牌 细绳 是的 接口调用凭证
跳转_wxa 目的 不 跳转到目标小程序信息。
is_expire 布尔值 错误的 不 生成的方案代码类型,到期:true,永久有效:false。
过期时间 数字 不 过期方案代码的过期时间为 UNIX 时间戳。生成的过期方案代码在此时间之前有效。最长有效期为1年。生成过期方案时需要。
jump_wxa的结构
属性 类型 默认值 必需的 解释
小路 细绳 是的 通过方案码输入的小程序页面路径必须是已发布小程序的页面,不能携带查询。当path为空时,会跳转到小程序首页。
询问 细绳 是的 通过方案码进入小程序时查询最多128个字符。它只支持数字、大小写英文和一些特殊字符:!#$& ' ()*+,/:; =?@-。_~
请求示例:
{
"jump_wxa": {
"path": "/pages/index/index",
query": ""
},
"is_expire": true,
"expire_time": 1606737600
}
返回结果:
{
"errcode": 0,
"errmsg": "ok",
"openlink": Scheme,
}
OpenLink 就是我们最终需要的 URL scheme~
2、云通话
云调用是小程序,云开发,在云函数中调用微信开放接口的能力。需要通过wx-server-sdk在云功能中使用。
请求参数:
属性 类型 默认值 必需的 解释
访问令牌 细绳 是的 接口调用凭证
跳转_wxa 目的 不 跳转到目标小程序信息。
已过期 布尔值 错误的 不 生成的方案代码类型,到期:true,永久有效:false。
过期时间 数字 不 过期方案代码的过期时间为 UNIX 时间戳。生成的过期方案代码在此时间之前有效。最长有效期为1年。生成过期方案时需要。
注意参数名大小写与HTTPS不一致
jump_wxa的结构
属性 类型 默认值 必需的 解释
小路 细绳 是的 通过方案码输入的小程序页面路径必须是已发布小程序的页面,不能携带查询。当path为空时,会跳转到小程序首页。
询问 细绳 是的 通过方案码进入小程序时查询最多128个字符。它只支持数字、大小写英文和一些特殊字符:!#$& ' ()*+,/:; =?@-。_~
请求示例:
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
})
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.urlscheme.generate({
jumpWxa: {
path: '/pages/index/index',
query: ''
},
isExpire: true,
expireTime: 1606737600
})
return result
} catch (err) {
return err
}
}
返回结果:
{
"errcode": 0,
"errmsg": "ok",
"openlink": Scheme,
}
OpenLink 就是我们最终需要的 URL scheme~
小程序 URL 方案的使用
小程序URL scheme的结构是:weixin://dl/business/?t= *TICKET*,如果我们拿到scheme后使用会怎么样。
留IOS系统支持直接识别的URL Scheme是,这样你就可以直接URL Scheme把它寄给你的短信和电子邮件,并提供给用户。但是在Android系统不支持直接识别时URL Scheme,用户无法正常使用scheme打开小程序,所以开发者需要使用H5页面进行跳转,然后跳转到使用scheme打开微信小程序。
结尾 使用方式 评论
安卓 location.href='weixin://dl/business/?t= *TICKET*' 只有一种方式
IOS 直接识别 URL scheme 或使用 location.href 方法 两种方式
但是,我们要注意一个问题。当我们触摸短信时,我们无法判断用户使用的移动设备是否IOS还在Android,
因此,我们需要一个 H5 页面来处理来自实际业务触发器的传输处理。
小程序业务流程图
当当网的时候,集成了两种打开小程序的方式(URL方案和),小程序完整版唤起业务流程图~