看到很多开发者在H5免鉴权跳转小程序这处于懵逼状态!!!!
我下边解释一下什么叫免鉴权?????
下方是官方文档内对免鉴权跳转能力的解释
注意第二段话
静态网站网页在微信客户端打开时
也就相当于什么,相当于在微信中打开这个开放按钮时候才会免鉴权,此时是通过什么跳转的呢
没错是通过上边代码中
username="小程序原始账号 ID(gh_ 开头的)"
path="要跳转到的页面路径"
此时根据这两个参数跳转的,此时和云函数半毛钱关系没得!!!!
此时相当于什么 相当与小程序内的
wx.navigateToMiniProgram(Object object)
此时你想说我就想单纯实现微信内H5的跳转,且想在路径传参怎么解决???
js获取静态网站url后的参数,原生js去替换username与path的值呀
let launchBtn = document.getElementById('launch-btn')
launchBtn.setAttribute("path", "XXXXXXXXXX"); //HTML 属性
launchBtn.setAttribute("username", "XXXXXXXXXX"); //HTML 属性
在微信以外的渠道中都需要走云函数去请求拿到 openlink 或自建网站鉴权调用接口获取openlink
那些发帖想在小程序A云函数跳转B小程序的别想了不可以
在uniapp里腾讯云函数搞的也别想了,那边没有内置小程序的sdk,调用不动云函数的
乖乖去云开发里上传静态网站,并打开允许访问,云函数打开未登录允许调用
或者自建网站鉴权获取
下边发一条我自己开发的H5跳小程序链接,你们可以去测试
https://u.imvp.top/?s=jlqwyBFN ——本链接由微信小程序【链接工具】生成
看到这里有人问我,我这个链接后边的参数是干什么的?这个参数是控制跳转哪一篇文章的加密id。
在任何情况下访问网站我都会去解析真实对应的文章链接是什么?
微信内我会将真实链接拼接在wx-open-launch-weapp属性内
if(res.result.url){
launchBtn.setAttribute("path", `/pages/basics/web_view.html?url=${encodeURIComponent(res.result.url)}`); //HTML 属性
}
此时文章链接已经拼接在属性path上了。微信内点击也会跳转到指定位置,
非微信内我会拿到openlink 重定向Url唤醒微信,实现外链跳转。
云函数端代码同样采用了官方示例代码,增加了openlink 入库绑定对应文章链接与加密参数,免得多次生成浪费!
2021年1月26日补充
因为目前URL Scheme进入小程序仅可进入正式版本,无法进入测试版,自己在开发时候专门做了参数埋点,上次测试后才二次对接参数提版,为此我将参数格式说明一下
//小程序端首页onLoad
onLoad(options) {
if(options.s=='u'){ //openlink解析后的参数标志位
uni.navigateTo({
url:`/pages/basics/web_view?id=${options.id}`
})
}
}
//云函数端,生成openlink
const result = await cloud.openapi.urlscheme.generate({
jumpWxa: {
path: `/pages/index/index`, // 替换自己的url路径
query: id?'s=u&id='+id:'', // s=u 作为我自己的参数标志位
},
// 如果想不过期则置为 false,并可以存到数据库
isExpire: false,
// 一分钟有效期
expireTime: parseInt(Date.now() / 1000 + 60),
})
//存储跳转链接
saveOpenlink(id,result.openlink)
return {
...result, //urlscheme返回的所有参数 主要使用result.openlink
s:id, //加密文章ID
url:articleData.data.url //文章链接
}
//html端 供小程序环境访问跳转使用
let launchBtn = document.getElementById('launch-btn')
launchBtn.setAttribute("path", `/pages/basics/web_view.html?url=${encodeURIComponent(res.result.url)}`); //HTML 属性
使用云静态网站,只配置wx.config中的appid,不需要云函数吧 但是怎么还是不能跳转 弹窗config配置失败,不显示按钮
作者您好,那个query的参数不是在后台生成的吗我这边得到的链接是t=一个参数那个参数跟我需要发送的参数不一样
作者您好, 我配置好,web能拉起小程序,但是我把我域名下整一个iframe嵌套这个拉起中转页,就不行,也不报错~~
求问大佬,是一定要开通微信静态网站功能才能在微信渠道外跳转吗?
微信环境外的h5页面,必须通过云函数的方式打开小程序吗
大佬求问,这个可以做到开放标签按钮隐藏掉,然后用js模拟点击事件唤起打开小程序的对话框吗?
我就配置了这些还需要什么吗
h5跳转小程序必须配置的是什么?
不用云函数可以跳转吗
在A小程序内托管后,可以在B小程序内打开托管H5吗