53645111
53645111
  • 发布:2023-08-10 08:30
  • 更新:2023-12-03 13:00
  • 阅读:557

uni-starter设置邀请码裂变功能修改

分类:uniCloud

本人新手,自己摸索出来的,不正之处还请路过的前辈指点。

网上找资料时总能刷到前辈们关于各种坑的文章,作为新手,因为没有基础(没学过编程,仅靠看手册写了两个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中也正常

0 关注 分享

要回复文章请先登录注册

u***@qq.com

u***@qq.com

回复 53645111 :
就是直接做成插件形式,上架插件市场,需要的人直接一键导入部署就好了。
2023-12-03 13:00
53645111

53645111 (作者)

回复 u***@qq.com :
首先多谢回复,发布了没有效果,不知你说的“直接引入”怎样操作,若是方便还请指教一下
2023-10-17 23:28
u***@qq.com

u***@qq.com

要是上架uni_modules直接引入就好了
2023-09-30 22:28