微信小程序生成外部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文件中,添加
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。