更新记录
3.5.18(2024-03-25)
- 增加 管理端增加ugc发布用户选项(如果选择了用户,那么发布者为选择的用户;否则为当前登录者。需要更新管理端和上传云函数)
3.5.17(2024-03-20)
- 修改 优化广场中内容为:非推荐、非加精内容
3.5.16(2024-03-13)
- 修复 修复商品搜索界面分类列表无法滚动的问题
平台兼容性
阿里云 | 腾讯云 | 支付宝云 |
---|---|---|
√ | √ | × |
Vue2 | Vue3 |
---|---|
× | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
app-vue app-nvue | √ | √ | √ | √ | √ | √ |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
× | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
√ | √ | √ | √ | √ | √ | √ | √ | √ |
云函数类插件通用教程
使用云函数类插件的前提是:使用HBuilderX 2.9+
UNIBBS 3.0版本
打造社区+自营店的应用
3.0主要升级点:会员体系、优惠券功能、二级分销,区域分销、分销员奖励,积分体系、激励视频、ai功能、每日任务、积分换购等
- UI全面革新
- 1.0和2.0版本积累的经验和收到的反馈,分类有子级并不是很好,让用户选择分类也太复杂。所以3.0取消二级分类,采用tag进行自动化匹配。同时,需要伴随管理人员通过管理端手动去维护更精准的分类
- 编辑器进行简化
- 增加话题功能
- 增加即时通讯功能
- 拆分UGC互动消息和定时任务
- 增加全局字体大小调节功能
- 增加配置文件
- UGC其他功能的升级
- 商城全面革新(1.0和2.0有多商场功能,3.0进行了剔除,可以二开)
- 管理端增加用户数据、订单数据等相关功能显示
- 管理端增加店铺自定义功能、门店管理、shop首页自定义
- 重写商品发布功能
- 增加快递公司管理、运费模版管理(对不同商品可以定制是否包邮的同时、选择不同的不包邮时的快递费用)
- 增加交易设置(定制订单取消、自动收货、退款审核相关)
- 增加二级分销体系(东西太多就不列了...)
- 增加积分体系
- 增加会员成长体系
- 增加分销成长体系
- 增加优惠券功能(发放和领取)
- 每日任务功能(签到、点赞、评论)
- 积分换购功能
- 激励视频
- 可定制的站点功能
- ai功能
- 增加爬虫程序,解决开始没有ugc内容的难题。现在只需要改一改关键字,就可以很快添加多条内容。(使用爬虫时,请先阅读爬虫程序的注释)
- 增加短信提醒,7天后未登录但是有未读消息用户发送短信,点击链接打开应用
如果您有好的项目/插件想法可以联系我,一起参与开发进行设计制作
使用前,请先阅读该文件!请先阅读该文件!请先阅读该文件!阅读该文件可以解决您遇见的99%的问题 保持HBuildx的更新,将会解决1%的问题
UI框架使用TMUI
后端使用uniCloud,开发框架使用vk。云开发优点:十分节约成本,不用维护服务器,不考虑扩容,性能好,使用方便稳定。
使用VUE3 + TS
联系方式 email:beydeng@163.com QQ:502183572。请不要通过下方联系作者按钮进行联系,一般是收不到消息滴...
管理端见下方,为gitee地址,使用git进行下载更新。 下载地址
前置工作:修改云函数全局配置文件(用到微信登录的必须要配置)
(如果您的站点不需要关联位置信息,只需要将首页选择位置部分的代码注释即可)
- 打开文件 manifest.json,点击【微信小程序配置】,配置 appid (在微信小程序官方的后台获取)
-
打开文件 cloudfunctions/common/uni-config-center/uni-id/config.json(没有则新建)(注意这里是config.json).配置 mp-weixin 内的 appid 和 appsecret(在微信小程序官方的后台获取)
"service": { "sms": { "name": "小镇+短信验证码", "codeExpiresIn": 600, "smsKey": "", "smsSecret": "", "templateId": "", "orderTemplateId": "" },
短信配置文件说明:短信验证码模版中 orderTemplateId为订单发送模版,申请格式如下
- 将以下域名加入小程序 request 合法域名
腾讯云:https://tcb-api.tencentcloudapi.com;
阿里云:https://api.next.bspapp.com;
参考链接并将URL化后的地址也加入
(阿里云和腾讯云切换:打开项目路径,修改unCloud-aliyun(转为阿里云)/uniCloud-tcb(转为腾讯云)。线上项目,建议使用腾讯云,稳定性更高!)
配置完后,记得上传 公共模块 和 云函数 (如果第一次上传,需要上传全部的 公共模块 和 云函数)
-
直接右键uniCloud目录 点击 运行云服务空间初始化向导 即可
-
重置管理端密码
打开router云函数目录下的 router.param.json 重置admin密码下面的代码,然后运行云函数
-
初始化数据库
6.1 右键db_init初始化数据库 6.2 右键database上传所有DB schema 6.3 导入database/initdatas下的数据到相应表中 6.4 articles表下添加lnglat的地理位置索引和area_code普通索引
6.5 zone表下添加lnglat 地理位置索引。然后将链接下的cn-zone-split压缩文件解压,导入json文件到表中。如果导入失败,多试几次,或者将单个json文件拆封更小数据。 链接提取码: xqma
6.7 给message-im、message-ugc表添加session_id索引(添加索引,查询更快)
-
右键项目,命令行打开,执行 npm install
-
申请和配置广告id 8.1 申请开通uni-id uni-id 8.2 后台配置广告id(每种类型只需要配置一个) 8.3 如果提示插件没有申请,请src/common/config.json配置文件中进行关闭广告功能 8.4 如果还是报错提示开通ad插件,请手动<ad搜索,将以<ad和<ad-rewarded-video的代码注释,开通之后,再取消注释
-
支付配置
9.1 打开 cloudfunctions/common/uni-config-center/uni-pay/config.js。配置notifyUrl和一些支付参数为自己的 9.2 将 appCertPublicKey.crt、alipayRootCert.crt、alipayCertPublicKey_RSA2.crt 3个证书放在此目录下(阿里支付) 9.3 将 wxpay.p12 1个证书放在cloudfunctions/common/uni-config-center/uni-pay/wxpay/目录下(微信支付) 部分自定义配置请查看src/common/config.json,修改成自己的 9.4 如果发现小程序微信登录code不正确,将云函数下common/uni-config-center-vk-unicloud中vk-unicloud的index中的context的APPID修改为自己的
-
开通unipush-v2。 配置时,如果应用只运行在小程序的话,iOS和安卓的配置采用系统默认的。配置完成之后,修改服务端下的service/util/config中的appId为自己的appId。注意:上线时,请修改改配置文件下的miniprogram_state为formal。
// miniprogram_state 跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
对于小程序,需要配置小程序订阅消息。(如果不配置,小程序无法收到订阅消息,如果配置后还是无法收到消息 请Q我 QQ:502183572 mail:beydeng@163.com。解答安装问题,时间19-23点)
订阅消息又限制。一次最多订阅3个消息。所以发布帖子时,会订阅UGC(comment、like、fans),关注时会订阅attention,发送消息会订阅message
10.1 评论提醒。在小程序后台管理-功能-订阅消息-公共模版库中找到新的评论提醒模版标题-选用。之后参考下方截图选择4个内容。确定模版。复制模版ID并替换service/util/config中的template_ids中的UGC中comment值。
10.2 点赞提醒。替换service/util/config中的template_ids中的UGC中like值。
10.3 新帖子提醒。替换service/util/config中的template_ids中attention值。
10.4 新增关注提醒。替换***service/util/config***中的template_ids中的UGC中fans值。
10.5 聊天消息提醒。替换***service/util/config***中的template_ids中的message的值。
- 用户注册时会给一个默认头像,2.0版本是api.multiavatar.com这个api根据用户名随机生成地址并下载存储。3.0取消该方法,简单维护几个头像使用。配置文件在service/util/config下的user_default_img中进行配置。
- 将根目录下的src目录下的 z-paging-index.js中的内容替换到uni_modules/z-paging/config/index.js
- 配置客服人员。通过web管理端,给用户绑定上客服的角色。
-
重置web管理端密码。
找到router云函数目录下的router.params.json,将重置admin密码的注释打开,然后右键router云函数本地运行。
-
数据库初始化。登录uni-cloud后台管理
进入项目的服务空间,导入database下db_init目录下的数据到对应的表中。如categories-db导入到categories表中。其他情况类似。
注意事项:
- 不要随意清除vk-global-data表下的数据。否则用户发布新的内容后,无法推送消息给粉丝。
- 所有UGC消息采用队列发布。也就是非及时的。会将这种消息,先写入到一个消息队列中,然后定时任务进行转发。阿里云定时任务可以达到最低1分钟触发一次,腾讯云可以配置到1秒钟云函数定时任务
-
trigger-ugc函数为ugc定时任务。在package.json内配置定时触发器(触发内容有:点赞、评论、增加粉丝、关注人有新的内容)
trigger-message函数为message定时任务。在package.json内配置定时触发器(触发内容有:私信、订单消息、支付消息、系统消息)
-
配置云函数下 uni-config-center下 uni-pay的配置文件,并将生成的证书放在uni-pay的uni-pay中。
-
快递查询使用的是第三方的查询api,需要自己去申请。购买渠道
![截图](https://mp-4ff800f1-8f08-45b7-ac27-3bf9aadb50df.cdn.bspapp.com/cloudstorage/da35e210-2fb0-4de2-bd5f-d1acf7422b39.png)
-
语音合成功能(申请api),先上传云函数下database下articles-audio.schem库,并更新管理端。只有管理端对可以转语音的内容才能转语音 打开 uniCloud/cloudfunctions/common/uni-config-center/vk-unicloud/index.js 文件,配置里面的"openapi.baidu" 百度开放平台。更新之后,记得上传uni-config-center 当前开启的是精品语音,如果需要开启普通语音合成,请修改router/timedTask/pub/article2AudioQueue下第53行voice参数长文本在线合成API 逻辑说明: 当管理端对某一个ugc开启语音后,会将需要语音合成的任务写入库中,然后定时任务批处理开启语音的ugc进行语音合成,因为合成过程会花费时间不是及时的,所以如果第一次没有拿到合成语音,会等待下次。所以开启语音的文章,如果立即去获取音频,可能前端没有音频。当前定时任务为每5分钟执行一次,可以按照实际修改trigger-article-audio下triggers触发周期(参考文档:https://uniapp.dcloud.io/uniCloud/trigger)(需要上传Router和trigger-article-audio云函数)(因为api每一个字符都要收钱,所以不能对所有内容全部开启) 获取的语音合成文件会先下载然后上传到云存储中
-
uni-ai开通流程 开通之后不需要配置任何东西。(当前最大token数为1000,如果产生截断问题,修改uni-ai-chat云函数index.obj.js下tokensToGenerate的长度)
-
爬虫说明: (需要下载Chromium程序,下载路径[https://registry.npmmirror.com/binary.html?path=chromium-browser-snapshots/]并更新spider-village/index.js下的puppeteer基本配置中Chromium所在目录) 需要手动更改程序下的_category_ids,也就是说爬取的内容在特殊情况(及没有找到分类的情况)下你想放在那个分类下。使用爬虫时,请先看下代码中的注释
-
公众号登录流程
- 需要登录公众号后台,获取 appid 和 appsecret 并填写在 uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json 内
"h5-weixin": { "oauth": { "weixin": { "appid": "微信公众号appid", "appsecret": "微信公众号appsecret" } } }
- 在公众号后台左侧菜单 - 设置与开发 - 公众号设置 - 功能设置 - 配置业务域名、网页授权域名、JS接口安全域名
- 添加如下代码,访问授权页面
let appid = "你的公众号appid"; let redirect_uri = window.location.href.split("?")[0]; let scope = "snsapi_userinfo"; let url = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${redirect_uri}&response_type=code&scope=${scope}&state=STATE#wechat_redirect`; window.location.href = url;
注意1:h5的路由模式必须配置为 history,因为微信公众号登录的回调地址不支持 hash 模式。 注意2:你的前端托管那需要设置404指向的页面为index.html
- 授权完后页面会重新返回到你自己的页面(但此时页面已经刷新了),此时在页面 onLoad 函数中可以获取到 code
- 需要登录公众号后台,获取 appid 和 appsecret 并填写在 uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json 内
-
增加短信提醒打开应用功能
- 当用户如果7天没登录,并且有未读消息时,就会进行短信推送,提示打开app或者小程序
- 小程序链接生产方式:打开云函数下【router.param.json】中 (生产小程序url链接)代码块,本地运行生产链接。(链接不是永久的)
- 短信模版为【您有${num}条未读消息,点击查看${url}。】(num请选择数组,url请选择链接)
- 增加模版之后,在timedTask/pub/messageRemindQueue中,将模版id填入templateId
- 每个人只会在每7天收到一次短信,避免骚扰用户
-
UGC内容连接跳转说明
- 通过管理端发布UGC内容时,可以增加相关链接进行跳转
- 如果是URL,则直接跳转到URL所在地址[注意:小程序中需要配置URl访问地址到小程序开发平台]
- 如果是第三方mini小程序的话,请使用mini-xxx,xxx为第三方小程序id
- 如果是本地连接的话,以/page开头,如跳转商品/pages/business/goods-detail?_id=xxx,xxx为商品id,其他路径请参考src/pages.json文件
App下config.json配置文件各配置说明
{
// 云配置
"CLOUD": {
},
"LOGO": "",
// 话题ICON
"TOPICICON": "",
// 发布文章时,话题ICON
"P-TOPICICON": "",
// 活跃用户ICON
"ACTIVEUSER": "",
// 消息中系统图标
"message_system_icon": "",
// 消息中话题讨论图标
"message_system_talk": "",
// 用户协议和隐私政策地址
"protocols":[
],
// 底部tabbar
"TABBARS": [
"s_img": "", //选择
"n_img": "", //未选中
],
//用户头像占位图
"user_header_bg": "",
// 占位背景图
"placeBg": "",
// 话题头部默认占位背景
"topicHeaderDefaultBg": "",
"hotTopBg": "",
// 页面下拉加载
"paging_loadings": [
],
// 分享如果是视频
"shareVideoBg": "",
"audioBg": "",
// 前端去截帧,不稳定
//用户上传视频后,编辑器中出现的视频展位图
"editor_video_bg": "",
// 空页面时的图片
// 请按顺序进行替换 1.普通缺省 2.加载失败 3.评论缺省 4.搜索缺省 5.消息缺省
"empty_imgs": [
],
// 我下方的工具按钮icon
"me_tools_icons": [
],
"me_business_tools_icons": [ //推广大使 //会员卡 //我的地址 //我的优惠券
],
"local_icons": [ // 首页开启local / 未开启local
],
// 用户默认定位
"local": {
},
// 是否开启广告功能
// 申请开通uni-id [uni-id](https://uniapp.dcloud.net.cn/uni-ad.html#start)
"openAD": true,
"adpid": {
// banner广告
"banner": "",
// 视频广告
"video": ""
}
}