微信小程序生成外部http短链

微信小程序通过外部链接动态访问到某个小程序的某个页面(只支持非个人小程序,个人小程序需要一个非个人小程序做跳板);

方案一(免费、有50w条限制):

 

通过微信官方给的api生成短链;
api1:生成token,点击链接查看官方文档

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=....&secret=....

api2:根据token获取短链:具体参数看官方文档
https://api.weixin.qq.com/wxa/generate_urllink?access_token=....;

 

此短链只支持同一个人访问,每天最多生成50w条;

同一个人访问的解决方案,

做一个中间页面做跳转,例如:给不同用户发送一个带有员工A的userId的短链,假设userId为testid,假设中间页挂载的域名为https://test.cn/index.html,则生成的短链为:https://test.cn/index.html/testid
中间页中写个函数:从接口中根据userId给后端接口(后端调用上述的api)获取真正的短链:https://wxaurl.cn/......,然后直接window.location.href='https://wxaurl.cn/......'

 

方案二(云函数、收费、无限制):

点击查看官方文档,demo在文档中有,注意要修改内部的参数;

疑难解决:

1、如何使用云函数,uniapp/原生同理

在manifest.json文件中,添加

"cloudfunctionRoot": "./functions/",

 uniapp需要配置vue.config.js,内容如下:

const path = require('path')
const CopyWebpackPlugin = require('copy-webpack-plugin')

module.exports = {
  configureWebpack: {
    plugins: [
      new CopyWebpackPlugin([
        {
          from: path.join(__dirname, 'functions'),
          to: path.join(__dirname, 'unpackage/dist', process.env.NODE_ENV === 'production' ? 'build' : 'dev', process.env.UNI_PLATFORM, 'functions')
        }
      ])
    ]
  }
}

还需要引入包

npm install copy-webpack-plugin@5.0.3 -s

在根目录下创建functions文件夹,创建云函数名的文件夹,创建三个文件(文件的内容到上述的官网下载demo):

 uniapp用hbuild重新打包;

2、静态网站链接报错不跳转

一般都是权限问题,

 

 

 3、云函数如何上传:

 4、如何做到动态传参:
如上述的例子:

假设给静态网站(这个静态网站是指,云开发中的静态网站,可以配自定义域名)配置了域名为https://test.cn,然后生成的外链为https://test.cn?userid=testid;
在静态的页面(官网的demo中)改动一下传参,改动的地方如图

 

 还有在云函数中修改

 

 这个只是简单的传参修改,如果链接太长则可以跟后端进行键值绑定做短链。

有疑问可以咨询我,联系方式如下QQ。

 

 

 

posted @ 2023-08-16 18:03  xiaochuchun  阅读(1653)  评论(0编辑  收藏  举报