评论

H5免鉴权跳转小程序常见问题解答

H5免鉴权跳转小程序,什么叫免鉴权,你真的看懂文档了吗

看到很多开发者在H5免鉴权跳转小程序这处于懵逼状态!!!!

我下边解释一下什么叫免鉴权?????

下方是官方文档内对免鉴权跳转能力的解释

注意第二段话

静态网站网页在微信客户端打开时

也就相当于什么,相当于在微信中打开这个开放按钮时候才会免鉴权,此时是通过什么跳转的呢

 


没错是通过上边代码中 
username="小程序原始账号 ID(gh_ 开头的)" 
path="要跳转到的页面路径"  
此时根据这两个参数跳转的,此时和云函数半毛钱关系没得!!!!


此时相当于什么 相当与小程序内的

wx.navigateToMiniProgram(Object object)


此时你想说我就想单纯实现微信内H5的跳转,且想在路径传参怎么解决???

js获取静态网站url后的参数,原生js去替换usernamepath的值呀

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 属性




最后一次编辑于  2021-01-26  
点赞 4
收藏
评论

17 个评论

  • 豆包
    豆包
    2021-05-24

    仍有询问弹窗吗

    2021-05-24
    赞同
    回复
  • Ccc
    Ccc
    2021-05-21

    我想问下id是怎么传过来的 又是怎么从云函数取的, 文章都没提到,就在云函数直接用了.

    2021-05-21
    赞同
    回复 2
    • 社恐的王同学
      社恐的王同学
      2021-05-22
      2021-05-22
      回复
    • 盖子
      盖子
      2021-07-09回复社恐的王同学
      h5链接后面携带的id是怎么在云函数里面取到的,云函数里面的代码能否传完整些,云函数里面的id没看到从哪里来的
      2021-07-09
      回复
  • 二次元
    二次元
    2021-04-30

    大佬,我这里测试成功了,但是这个H5页面的链接怎么控制?可以自定义吗?

    2021-04-30
    赞同
    回复 1
    • 社恐的王同学
      社恐的王同学
      2021-04-30
      let launchBtn = document.getElementById('launch-btn')
      launchBtn.setAttribute("path", `/pages/basics/web_view.html?url=${encodeURIComponent(res.result.url)}`); //HTML 属性
      2021-04-30
      回复
  • 袋鼠
    袋鼠
    2021-03-05

    大佬,我用官方的直接改报错,

    Uncaught (in promise) Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail requestID , cloud function service error code -501023, error message Permission denied (callid 1614915209251-0.6090376160747115); at cloud.callFunction api; 

    2021-03-05
    赞同
    回复 2
    • 社恐的王同学
      社恐的王同学
      2021-03-05
      云开发  设置 权限设置 打卡云环境的  未登录用户访问权限


      与开发 云函数 云函数权限  设置安全规则
      2021-03-05
      回复
    • 袋鼠
      袋鼠
      2021-03-05
      云函数也已经上传了
      2021-03-05
      回复
  • 朽木白
    朽木白
    2021-01-25

    我这样写的,这个外部H5跳转小程序的,没法正常跳转到指定的页面,只有在微信打开的H5才能跳转到指定的页面,path的值为:/v2pages/register/register.html?from=123&secondFrom=123。这是为什么呢?

    我看你的是这样写的地址,应该我上面写的方式应该也没问题吧

    2021-01-25
    赞同
    回复 1
    • 社恐的王同学
      社恐的王同学
      2021-01-26
      微信跳转正常说明 wx-open-launch-weapp属性正常,不正常的是你的云函数,云函数写正确你的path与参数,不要带.html
      2021-01-26
      回复
  • 朽木白
    朽木白
    2021-01-25

    能看下你的云函数吗?

    2021-01-25
    赞同
    回复 6
    • 社恐的王同学
      社恐的王同学
      2021-01-25
      云函数 与官方的提供的一致,仅添加了加密id的查询
      2021-01-25
      回复
    • ygg
      ygg
      2021-03-09回复社恐的王同学
      大佬,怎么在云函数传递参数,在小程序接受啊,可以看看云函数关键代码吗
      2021-03-09
      回复
    • 社恐的王同学
      社恐的王同学
      发表于小程序端
      2021-03-09回复ygg
      文章末尾有关键云函数代码呀
      2021-03-09
      回复
    • ygg
      ygg
      2021-03-10回复社恐的王同学
      是不是在云函数那边最后return出去的参数就是小程序那边options可以接住的参数
      2021-03-10
      回复
    • 社恐的王同学
      社恐的王同学
      发表于小程序端
      2021-03-10回复ygg
      是return之前的query里那部分是,return里是静态H5用的
      2021-03-10
      回复
    查看更多(1)
  • 社恐的王同学
    社恐的王同学
    2021-01-22

    想看我的静态网站代码,直接F12审查看看源码,都是在官方示例代码基础上稍加修改,样式都没改

    2021-01-22
    赞同
    回复 1

正在加载...

登录 后发表内容