非微信环境跳转小程序
需求:当用户在非微信环境中怎么跳转到小程序中并且传递参数。
实现思路:非个人主体并且已认证的(微信认证)小程序,使用云开发静态网站托管的网页,可以免鉴权跳转任意合法合规的小程序。即可以在微信内部浏览器的 H5 跳转小程序,也可以在微信外部浏览器或其他部分 App (如企业微信、QQ 等)跳转微信小程序。
实现流程: 最重要的是你的小程序要把云服务开启【重要】
- 把静态网页下载下来,下载链接
- 这里有教你怎么改成你自己小程序的
- 云函数中怎么添加参数
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
console.log(wxContext,"wxContext",event)
switch (event.action) {
case 'getUrlScheme': {
return getUrlScheme(event.params)
}
}
return 'action not found'
}
async function getUrlScheme(params) {
return cloud.openapi.urlscheme.generate({
jumpWxa: {
path: '进入小程序页面的路径', // <!-- replace -->
query:params,//从外部传进来的放在这里就可以了,传递的参数是和键值对的形式就可以了,小程序端就可以接受到了
},
// 如果想不过期则置为 false,并可以存到数据库
isExpire: false,
// 一分钟有效期
expireTime: parseInt(Date.now() / 1000 + 60),
})
}
静态网站中怎么调用云函数中的方法,并且传递参数 (在你下载的页面中找到这个方法修改如下):
async function openWeapp(onBeforeJump) {
var c = window.c
var params=参数
const res = await c.callFunction({
name: 'openMini',//这个是你要上传到你小程序中的云函数的文件名
data: {
action: 'getUrlScheme',//你要调用云函数的方法名
params:params//你要传递的参数
},
})
console.warn(res)
if (onBeforeJump) {
onBeforeJump()
}
location.href = res.result.openlink
}
怎么把文件部署在你小程序上面
1.首先要上传云函数文件:
2.你上次完成的时候可以在这里看到:
3.我们还需要配置下云函数权限:如下
4.上传静态网站的位置:
5.我们还需要把权限打开下:
5.配置完成的时候需要重新打开下项目在运行下。在到那个静态网站上面哪里就会有域名,你可以把这个域名配置的放在非微信的环境下面去试试,如果报错了,可能是配置错了。
可能以上说的不是很清楚,具体操作,你可以参考这个网站上的视频
教学视频
加油!keep going