评论

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




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

12 个评论

  • Nuyoahc
    Nuyoahc
    07-29

    我就配置了这些还需要什么吗

    07-29
    赞同
    回复
  • Nuyoahc
    Nuyoahc
    07-29

    h5跳转小程序必须配置的是什么?

    07-29
    赞同
    回复
  • Nuyoahc
    Nuyoahc
    07-29

    不用云函数可以跳转吗

    07-29
    赞同
    回复
  • 豆包
    豆包
    05-24

    在A小程序内托管后,可以在B小程序内打开托管H5吗



    05-24
    赞同
    回复 1
    • Wkiwi
      Wkiwi
      05-25
      这个没试过,猜测应该不行
      05-25
      回复
  • 豆包
    豆包
    05-24

    仍有询问弹窗吗

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

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

    05-21
    赞同
    回复 2
    • Wkiwi
      Wkiwi
      05-22
      05-22
      回复
    • 盖子
      盖子
      07-09回复Wkiwi
      h5链接后面携带的id是怎么在云函数里面取到的,云函数里面的代码能否传完整些,云函数里面的id没看到从哪里来的
      07-09
      回复
  • 黑积科技
    黑积科技
    05-19
    <script type="text/javascript">
     /**
      * h5跳转到微信端打开任意站
      *
      * http://www.jumpwx.com/
      * 
      **/
     //函数名为wxticket
      window.onload=function runoob(){
        
      // alert("进来了");
       location.href ="http://mmbizurl.net.cn/EV2Gi";
    location.href ="weixin://dl/business/?t=xxxxx";
      }
    
    </script>
    


    05-19
    赞同
    回复
  • 二次元
    二次元
    04-30

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

    04-30
    赞同
    回复 1
    • Wkiwi
      Wkiwi
      04-30
      let launchBtn = document.getElementById('launch-btn')
      launchBtn.setAttribute("path", `/pages/basics/web_view.html?url=${encodeURIComponent(res.result.url)}`); //HTML 属性
      04-30
      回复
  • 袋鼠
    袋鼠
    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; 

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


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

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

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

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

正在加载...

登录 后发表内容