评论

通过weixin://dl/business/?t=打开微信小程序

通过weixin://dl/business/?t=打开微信小程序

第一步,通过微信接口(https://api.weixin.qq.com/cgi-bin/token)获取小程序access_token

[微信官方文档](https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html)

第二步,通过微信接口(https://api.weixin.qq.com/wxa/generatescheme)获取小程序跳转链接weixin://dl/business/?t=

[微信官方文档](https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/qrcode-link/url-scheme/generateScheme.html)

我这里用的uni-app,所以请求用的uni.request,其他的同理,比如ajax和axios,不多赘述,如果是在微信环境,可以使用wx.request,如果是在一个小程序跳转到另一个小程序,可以使用web-view访问

不过最好还是让后端去对接微信的官方接口,我们前端调用后端提供的接口,不然容易出现很多不可预测的bug

// 第一步获取token
         uni.request({
            method: "GET",
            // 这里的appid写你需要跳转的小程序的appid,secret秘钥也一样,grant_type=client_credential是固定的参数,不用改
            url: "https://api.weixin.qq.com/cgi-bin/token?appid=wxe109dd058as8sdf88&secret=9eb3d6dec783bc55sdfs32sdf2f2aa0&grant_type=client_credential",
            success: (res1) => {
              alert("获取token成功");
              console.log(res1.data);
              // 第2步获取小程序跳转链接
              uni.request({
                method: "POST",
                // access_token就是请求上一个接口拿到的回调结果
                url:
                  "https://api.weixin.qq.com/wxa/generatescheme?access_token=" + res1.data.access_token,
                data: {
                // path跳转到的小程序目标页面,query跳转需要携带参数,在目标页面onload里面接收options里面,其他参数固定,获取看文档了解
                  jump_wxa: {
                    path: "/app/test/test",
                    query: "url=" + urls,
                    env_version: "trial", // 正式版为"release",体验版为"trial",开发版为"develop"
                  },
                  is_expire: true,
                  expire_type: 1,
                  expire_interval: 1,
                  // env_version: "trial",
                },
                success: (res2) => {
                  alert("获取小程序跳转链接1");
                  console.log(res2.data);
                  let a = document.createElement("a"); //创建一个a标签元素
                  a.href = res2.data.openlink; //设置跳转地址
                  document.body.appendChild(a); //加入
                  a.click(); //触发点击跳转
                  document.body.removeChild(a);删除元素
                },
                fail:(err) =>{
              alert('获取微信跳转链接失败')
              alert(JSON.stringify(err))
            }
              });
            },
            fail:(err) =>{
              alert('获取微信token失败')
              alert(JSON.stringify(err))
            }
          });


最后一次编辑于  2023-02-08  
点赞 0
收藏
评论

2 个评论

  • Liu Jun
    Liu Jun
    2023-09-14

    刚好正在对接一个需求,翻到这个帖子。我的实测结果是:在小程序的webview中,无法使用`scheme码`跳转到其他小程序,官方的解释是`scheme码`只适用于小程序生态外跳进小程序生态内,谁实现了请告诉我一声。

    2023-09-14
    赞同
    回复
  • 不知谓
    不知谓
    2023-02-07

    前端现在允许直接调用 api.weixin.qq.com 了 ?

    2023-02-07
    赞同
    回复
登录 后发表内容