本人新手,自己摸索出来的,不正之处还请路过的前辈指点。
网上找资料时总能刷到前辈们关于各种坑的文章,作为新手,因为没有基础(没学过编程,仅靠看手册写了两个tp5网站,易语言、E4A、aardio都学过,没早点遇到unicloud浪费了很多时间!),确实遇到很多问题,文档上仅几句话带过,其他地方又找不到前辈们留下的经验,所以解决完这个问题,想着发第一个贴子,留给新手们参考一下。
autoSetInviteCode: true
生成海报时带上参数
http://localhost:8080/pages/ucenter/t1/t1?invite=12366
//此处invite应该获取分享者的 my_invite_code
用户打开后,将参数缓存
onLoad: function (option) { //option为object类型,会序列化上个页面传递的参数
console.log(option.invite); //打印出上个页面传递的参数。
uni.setStorageSync('share_id',option.invite)
},
修改common/appInit.js文件拦截逻辑,给inviteCode传值即可
//拦截云对象请求
uniCloud.interceptObject({
async invoke({
objectName, // 云对象名称
methodName, // 云对象的方法名称
params // 参数列表
}) {
if(objectName == "uni-id-co" && (methodName.includes('loginBy') || ['login','registerUser'].includes(methodName) )){
console.log('执行登录相关云对象');
//获取缓存中的share_id传递给inviteCode,后续系统会自动关联裂变信息
params[0].inviteCode = await new Promise((callBack) => {
var share_id = uni.getStorageSync('share_id');
console.log('获取share_id->',share_id);
callBack(share_id)
})
// console.log(params);
}
// console.log(params);
}
})
项目中原本用的uni.setClipboardData,在H5中好像工作不正常,改为uni.getStorageSync正常,小程序还没测试
搞错了,uni.setClipboardData在H5中也正常