从H5跳转到小程序,可以获取小程序的Scheme码然后直接使用window.location.href跳转过去(跳转的小程序要在公众平台能查的到)。
// this.url为获取到的小程序码
window.location.href = this.url
要获取小程序码首先要拿到 接口调用凭证 。
接口调用凭证需要向对应的接口发起请求。请求为GET
https://api.weixin.qq.com/cgi-bin/token
参数:
// 固定值
grant_type: 'client_credential',
// 小程序id
appid: '****************',
// 小程序秘钥 (开发管理/开发设置)
secret: '***************',
小程序id和小程序秘钥都需要在微信公众平台上获取。
接口调用成功的话会在data里返回access_token,这是就是接口调用凭证。
拿到凭证还需要再调一次接口,才能得到小程序码,接口为POST。
https://api.weixin.qq.com/wxa/generatescheme?access_token=ACCESS_TOKEN
ACCESS_TOKEN为获取的接口调用凭证,需要直接把凭证拼接在url后面,放在参数里不行。
参数:
//生成的 scheme 码类型,到期失效:true,永久有效:false。永久有效的scheme码上限为10万个
is_expire: true,
//如果scheme是到期失效的话需要配置此项,timestamp为Unix时间戳,单位为秒,不是毫秒
expire_time: timestamp,
jump_wxa: {
//path为需要跳转的小程序路径
path: 'pages/index/index',
//要打开的小程序版本。正式版为"release",体验版为"trial",开发版为"develop"。
env_version: 'trial',
//参数跳转过去携带的参数,最大1024个字符,只支持数字,大小写英文以及部分特殊字符
query: 'merge=1&key=100000'
}
注意:env_version版本的设置仅在微信外打开生效,安卓浏览器并不支持直接访问小程序码,需要用h5作为中介,调试会比较麻烦。
然后是返回的errcode代表的意思
40002 暂无生成权限
40013 生成权限被封禁
85079 小程序未发布
40165 参数path填写错误
40212 参数query填写错误
85401 参数expire_time填写错误,时间间隔大于1分钟且小于1年
85402 参数env_version填写错误
44990 生成Scheme频率过快(超过100次/秒)
85400 长期有效Scheme达到生成上限10万
45009 单天生成Scheme数量超过上限50万
最后data里的openlink就是要的小程序码。
然后直接跳转
// this.url为获取到的小程序码
window.location.href = this.url