HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

【2026全民国家安全教育日】筑牢网络安全防线,DCloud 开发者在行动!

网络安全

各位 DCloud 社区的开发者小伙伴们,大家好!👋

今天(4月15日)是第十一个全民国家安全教育日。提到“国家安全”,很多人的第一反应可能是军事防御、防谍保密等宏观层面的内容。但实际上,在数字化、智能化的今天,网络安全和数据安全已经成为国家安全体系中至关重要的一环!

作为在这个时代浪潮中冲浪的开发者,我们敲下的每一行代码、设计的每一个业务逻辑,其实都与“安全”息息相关。

🛡️ 开发者与国家安全的距离有多近?

在日常的 uni-app 开发、前端构建或后端接口对接中,我们不仅是产品的创造者,更是用户数据和网络安全的“守门员”:

  1. 数据安全与隐私保护:我们的 App/小程序是否合规收集用户数据?是否在本地存储了未加密的敏感信息?防范数据泄露,不仅是保护用户,更是维护国家数据安全底线。
  2. 抵御网络攻击:无论是 XSS、CSRF,还是各类接口越权访问,不规范的代码随时可能成为黑客攻击系统的突破口。
  3. 开源组件的安全:引入第三方插件或 SDK 时,是否关注过其安全性?供应链安全目前也是网络安全防范的重中之重。

💡 我们能做些什么?

在2026年的今天,网络空间已成为大国博弈的“第五空间”。为了响应全民国家安全教育日的号召,我们在此向社区的每一位开发者发出倡议:

  • 增强安全意识:主动学习《网络安全法》、《数据安全法》、《个人信息保护法》等相关法律法规,让“合规”成为开发的第一原则。
  • 践行安全开发(DevSecOps):在需求设计、代码编写、测试发布的每一个环节,都把安全因素考虑进去。拒绝“先上线再修补”的侥幸心理。
  • 保护用户隐私:严格落实 App 隐私合规要求,遵循“最小必要”原则获取用户权限,妥善加密敏感数据。

💬 社区互动:你的项目是如何做安全防护的?

国家安全,人人有责;网络安全,代码为基。

欢迎大家在评论区分享:在日常的开发中,你遇到过哪些安全大坑?或者你在项目中使用了哪些好用的安全防护手段/插件?

让我们一起交流学习,共同构建更安全、更可靠的应用生态!👇


【活动说明】
本文为响应2026年第十一个全民国家安全教育日主题宣传活动所发。维护网络空间清朗,需要你我共同参与!

继续阅读 »

各位 DCloud 社区的开发者小伙伴们,大家好!👋

今天(4月15日)是第十一个全民国家安全教育日。提到“国家安全”,很多人的第一反应可能是军事防御、防谍保密等宏观层面的内容。但实际上,在数字化、智能化的今天,网络安全和数据安全已经成为国家安全体系中至关重要的一环!

作为在这个时代浪潮中冲浪的开发者,我们敲下的每一行代码、设计的每一个业务逻辑,其实都与“安全”息息相关。

🛡️ 开发者与国家安全的距离有多近?

在日常的 uni-app 开发、前端构建或后端接口对接中,我们不仅是产品的创造者,更是用户数据和网络安全的“守门员”:

  1. 数据安全与隐私保护:我们的 App/小程序是否合规收集用户数据?是否在本地存储了未加密的敏感信息?防范数据泄露,不仅是保护用户,更是维护国家数据安全底线。
  2. 抵御网络攻击:无论是 XSS、CSRF,还是各类接口越权访问,不规范的代码随时可能成为黑客攻击系统的突破口。
  3. 开源组件的安全:引入第三方插件或 SDK 时,是否关注过其安全性?供应链安全目前也是网络安全防范的重中之重。

💡 我们能做些什么?

在2026年的今天,网络空间已成为大国博弈的“第五空间”。为了响应全民国家安全教育日的号召,我们在此向社区的每一位开发者发出倡议:

  • 增强安全意识:主动学习《网络安全法》、《数据安全法》、《个人信息保护法》等相关法律法规,让“合规”成为开发的第一原则。
  • 践行安全开发(DevSecOps):在需求设计、代码编写、测试发布的每一个环节,都把安全因素考虑进去。拒绝“先上线再修补”的侥幸心理。
  • 保护用户隐私:严格落实 App 隐私合规要求,遵循“最小必要”原则获取用户权限,妥善加密敏感数据。

💬 社区互动:你的项目是如何做安全防护的?

国家安全,人人有责;网络安全,代码为基。

欢迎大家在评论区分享:在日常的开发中,你遇到过哪些安全大坑?或者你在项目中使用了哪些好用的安全防护手段/插件?

让我们一起交流学习,共同构建更安全、更可靠的应用生态!👇


【活动说明】
本文为响应2026年第十一个全民国家安全教育日主题宣传活动所发。维护网络空间清朗,需要你我共同参与!

收起阅读 »

小程序包体积分析利器 -- vite-plugin-component-insight

体积优化 支付宝小程序 分包 分包异步化 微信小程序

背景

微信小程序支持分包异步化 跨分包自定义组件引用,但是,很多业务项目往往都比较复杂,组件使用情况也不容易看清,开发中很容易遇到这些问题:

  • 无法快速获悉某个组件到底被哪些页面使用
  • 不清楚一个组件在项目里出现了多少次
  • 做分包优化时,不知道组件放在主包还是分包更合适

于是,我写了一个插件 vite-plugin-component-insight 来简化这一过程。

特性

  • 开箱即用,配置简单
  • 统计组件的使用次数和调用情况
  • 结合主包和分包关系输出组件划分建议
  • 支持生成 markdown 报告,方便查看更加详细的信息
  • 支持 hx 项目和 cli 项目
  • 支持 uni-app 和 uni-app-x (vue3)

使用指南

安装

npm install @uni_toolkit/vite-plugin-component-insight -D  
# 或  
pnpm add @uni_toolkit/vite-plugin-component-insight -D  
# 或  
yarn add @uni_toolkit/vite-plugin-component-insight -D

配置插件

vite.config.js 中使用:

import { defineConfig } from 'vite';  
import uni from '@dcloudio/vite-plugin-uni';  
import componentInsight from '@uni_toolkit/vite-plugin-component-insight';  

export default defineConfig({  
  plugins: [  
    uni(),  
    componentInsight(), // 在 uni 之后调用  
  ],  
});

Tips

插件默认不会生成文件,而是在控制台直接输出分析结果。效果参考附件1

如果需要生成 markdown 报告,可以这样配置:

componentInsight({  
  reportMarkdownPath: 'logs/component-insight-report.md',  
})

如果只想生成 markdown,不输出控制台日志,可以这样配置:

componentInsight({  
  logToConsole: false,  
  reportMarkdownPath: 'logs/component-insight-report.md',  
})

完整配置项

interface VitePluginComponentInsightOptions {  
  reportMarkdownPath?: string;  
  logToConsole?: boolean;  
  exclude?: ReadonlyArray<string | RegExp> | string | RegExp | null;  
  include?: ReadonlyArray<string | RegExp> | string | RegExp | null;  
}
选项 说明
reportMarkdownPath 自定义 Markdown 报告输出路径,不传则不生成 Markdown
logToConsole 是否输出控制台日志,默认开启
exclude 指定过滤的文件,默认过滤 node_modules 和 uni_modules
include 指定包含的文件,默认为空

交流群

如果你有其他 uniapp 或者 uniappx 的问题想要咨询,可以扫描附件中的微信二维码进群

继续阅读 »

背景

微信小程序支持分包异步化 跨分包自定义组件引用,但是,很多业务项目往往都比较复杂,组件使用情况也不容易看清,开发中很容易遇到这些问题:

  • 无法快速获悉某个组件到底被哪些页面使用
  • 不清楚一个组件在项目里出现了多少次
  • 做分包优化时,不知道组件放在主包还是分包更合适

于是,我写了一个插件 vite-plugin-component-insight 来简化这一过程。

特性

  • 开箱即用,配置简单
  • 统计组件的使用次数和调用情况
  • 结合主包和分包关系输出组件划分建议
  • 支持生成 markdown 报告,方便查看更加详细的信息
  • 支持 hx 项目和 cli 项目
  • 支持 uni-app 和 uni-app-x (vue3)

使用指南

安装

npm install @uni_toolkit/vite-plugin-component-insight -D  
# 或  
pnpm add @uni_toolkit/vite-plugin-component-insight -D  
# 或  
yarn add @uni_toolkit/vite-plugin-component-insight -D

配置插件

vite.config.js 中使用:

import { defineConfig } from 'vite';  
import uni from '@dcloudio/vite-plugin-uni';  
import componentInsight from '@uni_toolkit/vite-plugin-component-insight';  

export default defineConfig({  
  plugins: [  
    uni(),  
    componentInsight(), // 在 uni 之后调用  
  ],  
});

Tips

插件默认不会生成文件,而是在控制台直接输出分析结果。效果参考附件1

如果需要生成 markdown 报告,可以这样配置:

componentInsight({  
  reportMarkdownPath: 'logs/component-insight-report.md',  
})

如果只想生成 markdown,不输出控制台日志,可以这样配置:

componentInsight({  
  logToConsole: false,  
  reportMarkdownPath: 'logs/component-insight-report.md',  
})

完整配置项

interface VitePluginComponentInsightOptions {  
  reportMarkdownPath?: string;  
  logToConsole?: boolean;  
  exclude?: ReadonlyArray<string | RegExp> | string | RegExp | null;  
  include?: ReadonlyArray<string | RegExp> | string | RegExp | null;  
}
选项 说明
reportMarkdownPath 自定义 Markdown 报告输出路径,不传则不生成 Markdown
logToConsole 是否输出控制台日志,默认开启
exclude 指定过滤的文件,默认过滤 node_modules 和 uni_modules
include 指定包含的文件,默认为空

交流群

如果你有其他 uniapp 或者 uniappx 的问题想要咨询,可以扫描附件中的微信二维码进群

收起阅读 »

一套完整的游戏陪玩搭子系统源码里,必须有的5个高留存模块

在游戏陪玩赛道竞争日趋激烈的当下,用户留存直接决定系统生命力。一套完整的游戏陪玩搭子系统源码,若想实现长期运营,必须内置5个核心高留存模块,既贴合用户核心需求,又能强化用户粘性,无需额外大幅开发即可快速落地。

首先是智能精准匹配模块,这是留存的基础。源码需支持基于游戏类型、段位、玩法偏好甚至作息时间的多维度匹配,结合Redis缓存优化查询效率,让用户快速找到适配的陪玩搭子,避免因匹配低效导致流失,这也是提升用户首次体验的关键环节。

其次是实时语音互动模块,作为陪玩核心场景刚需,不可或缺。源码需集成稳定的语音SDK,支持低延迟多人通话、静音控制等功能,同时适配多游戏场景,让用户在游戏过程中实现顺畅沟通,强化陪伴感,这是区别于普通社交系统的核心优势。

第三是搭子关系沉淀模块,助力用户长期留存。源码需支持关注、收藏常用搭子,建立专属聊天列表,留存聊天记录与陪玩历史,同时设置“常用搭子”一键预约功能,让用户形成固定社交关系链,减少用户流失率,提升复访频次。

第四是积分激励与任务模块,激活用户活跃度。源码需内置完善的任务体系,涵盖每日登录、完成陪玩订单、邀请好友等任务,积分可兑换陪玩时长或道具,同时搭配等级体系,让用户在使用过程中获得成就感,主动留存并活跃。

最后是评价与服务保障模块,筑牢留存根基。源码需支持用户对陪玩服务进行评分、留言,建立陪玩分级体系,同时设置不满意退款、违规投诉等机制,保障服务质量,增强用户信任度,为长期留存提供保障。

这5个模块相互联动,覆盖匹配、互动、沉淀、激励、保障全场景,是游戏陪玩搭子系统源码的核心骨架。唯有完善这些模块,才能有效提升用户留存率,降低运营成本,让系统在激烈竞争中站稳脚跟。
查看演示及源码获取地址⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇

继续阅读 »

在游戏陪玩赛道竞争日趋激烈的当下,用户留存直接决定系统生命力。一套完整的游戏陪玩搭子系统源码,若想实现长期运营,必须内置5个核心高留存模块,既贴合用户核心需求,又能强化用户粘性,无需额外大幅开发即可快速落地。

首先是智能精准匹配模块,这是留存的基础。源码需支持基于游戏类型、段位、玩法偏好甚至作息时间的多维度匹配,结合Redis缓存优化查询效率,让用户快速找到适配的陪玩搭子,避免因匹配低效导致流失,这也是提升用户首次体验的关键环节。

其次是实时语音互动模块,作为陪玩核心场景刚需,不可或缺。源码需集成稳定的语音SDK,支持低延迟多人通话、静音控制等功能,同时适配多游戏场景,让用户在游戏过程中实现顺畅沟通,强化陪伴感,这是区别于普通社交系统的核心优势。

第三是搭子关系沉淀模块,助力用户长期留存。源码需支持关注、收藏常用搭子,建立专属聊天列表,留存聊天记录与陪玩历史,同时设置“常用搭子”一键预约功能,让用户形成固定社交关系链,减少用户流失率,提升复访频次。

第四是积分激励与任务模块,激活用户活跃度。源码需内置完善的任务体系,涵盖每日登录、完成陪玩订单、邀请好友等任务,积分可兑换陪玩时长或道具,同时搭配等级体系,让用户在使用过程中获得成就感,主动留存并活跃。

最后是评价与服务保障模块,筑牢留存根基。源码需支持用户对陪玩服务进行评分、留言,建立陪玩分级体系,同时设置不满意退款、违规投诉等机制,保障服务质量,增强用户信任度,为长期留存提供保障。

这5个模块相互联动,覆盖匹配、互动、沉淀、激励、保障全场景,是游戏陪玩搭子系统源码的核心骨架。唯有完善这些模块,才能有效提升用户留存率,降低运营成本,让系统在激烈竞争中站稳脚跟。
查看演示及源码获取地址⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇

收起阅读 »

UniApp资深程序猿,八年全栈经验全职开发,主打uniCloud+uniapp全栈开发,可独立完成各类APP,小程序,H5的开发,效率高,成本低,全欢迎老板来咨询,微信同QQ:170842262

我的优势
1、精通uniCloud uniapp等技术栈,熟练使用 前后端分离开发 、拥有丰富的项目开发经验。
2、能够独立完成从项目的 分析 、设计 、 开发 、测试 、部署 到 维护与优化 的全过程,能 快速的对需求进行梳理并制定开发计划。
3、注重代码可维护性、可扩展性、性能优化等方面的工作。
4、汇聚多行业100 成熟项目案例 可供复用,效率倍增,快人一步。
如果您正在寻找一位高效、专业的开发者来完成您的项目,我非常愿意为您提供优质的服务,共同推动项目顺利进行。
如果您对我的技能与工作经验感兴趣,请通过微信联系我,我们可以进一步探讨您的具体项目需求,并且开展合作。
微信同QQ:170842262

继续阅读 »

我的优势
1、精通uniCloud uniapp等技术栈,熟练使用 前后端分离开发 、拥有丰富的项目开发经验。
2、能够独立完成从项目的 分析 、设计 、 开发 、测试 、部署 到 维护与优化 的全过程,能 快速的对需求进行梳理并制定开发计划。
3、注重代码可维护性、可扩展性、性能优化等方面的工作。
4、汇聚多行业100 成熟项目案例 可供复用,效率倍增,快人一步。
如果您正在寻找一位高效、专业的开发者来完成您的项目,我非常愿意为您提供优质的服务,共同推动项目顺利进行。
如果您对我的技能与工作经验感兴趣,请通过微信联系我,我们可以进一步探讨您的具体项目需求,并且开展合作。
微信同QQ:170842262

收起阅读 »

uniapp扩展组件uni-file-picker有安全漏洞,用云效部署后,会泄漏源代码

安全漏洞

我是h5项目,用uni-file-picker进行文件选择上传,然后用云效部署,发现在这个页面的js文件里,有我自己的云效账号密码token等,继而能找到阿里云仓库源代码,太神奇了。

我写的代码如下,刚开始不知道是哪里泄漏的,反复验证后,发现是这段代码,哪怕只留下limit,也会泄漏:

uni-file-picker v-if="userinfo.id" class="file-picker" ref="filePickerRef" v-model="state.uploadFile"  
            limit="1" file-mediatype="all" :auto-upload="false" title="" :sourceType="['album']" @select="fileSelect" ></uni-file-picker>

部分泄漏内容如下:
Re({
npm_command: "run-script",
privileged: "false",
KUBERNETES_SERVICE_PORT_HTTPS:
STEP_DOCUMENT_JSON:
TASK_DIR:
npm_config_userconfig:
runnerCacheMode:
KUBERNETES_SERVICE_PORT:
npm_config_cache:
operator:
invalidStepVersion:
NVM_INC:
NVM_IOJS_ORG_MIRROR:
NODEGROUP_TYPE:
npm_config_electron_mirror:
HOSTNAME:
npm_config_always_auth: LANGUAGE:

继续阅读 »

我是h5项目,用uni-file-picker进行文件选择上传,然后用云效部署,发现在这个页面的js文件里,有我自己的云效账号密码token等,继而能找到阿里云仓库源代码,太神奇了。

我写的代码如下,刚开始不知道是哪里泄漏的,反复验证后,发现是这段代码,哪怕只留下limit,也会泄漏:

uni-file-picker v-if="userinfo.id" class="file-picker" ref="filePickerRef" v-model="state.uploadFile"  
            limit="1" file-mediatype="all" :auto-upload="false" title="" :sourceType="['album']" @select="fileSelect" ></uni-file-picker>

部分泄漏内容如下:
Re({
npm_command: "run-script",
privileged: "false",
KUBERNETES_SERVICE_PORT_HTTPS:
STEP_DOCUMENT_JSON:
TASK_DIR:
npm_config_userconfig:
runnerCacheMode:
KUBERNETES_SERVICE_PORT:
npm_config_cache:
operator:
invalidStepVersion:
NVM_INC:
NVM_IOJS_ORG_MIRROR:
NODEGROUP_TYPE:
npm_config_electron_mirror:
HOSTNAME:
npm_config_always_auth: LANGUAGE:

收起阅读 »

电竞娱乐陪玩代练源码 抢单派单自动分账 多端小程序 APP 开发 线下生活陪伴服务源码 游戏陪玩语音聊天 一站式创业解决方案

uni_app

本方案旨在利用DCloud平台的跨平台开发能力,结合UniApp框架,打造一套集线上电竞陪玩代练、线下生活陪伴服务于一体的综合性平台。该平台支持多端运行(微信小程序、H5、iOS/Android APP),实现抢单派单自动化、财务分账智能化,为创业者提供一站式解决方案。

二、技术架构
前端技术:
UniApp框架:基于Vue.js的跨平台开发框架,支持一次开发,多端运行。通过UniApp,可以快速构建出适配微信小程序、H5、iOS/Android APP的用户界面。
UI组件库:使用如uView等第三方组件库,加速开发进程并提升界面一致性。
后端技术:
ThinkPHP 6(TP6)框架:提供高效的RESTful API开发支持,适合处理用户注册、订单管理、支付结算等核心逻辑。
数据库:MySQL作为主数据库,存储用户信息、订单记录、陪玩者资料等结构化数据;Redis辅助缓存高频访问数据(如用户会话、抢单锁)。
此处是获取完整源码和演示的地址!!!
实时通信:
WebSocket或第三方SDK:集成如融云等第三方SDK,实现聊天、语音连麦功能,支持文字、语音、图片发送,以及“正在输入”状态显示。
低延迟语音技术:对接腾讯云TRTC或阿里云RTS,实现低延迟(≤300ms)的语音连麦、游戏内语音覆盖,支持多人聊天室。
地理位置服务:
LBS定位接口:调用手机原生定位接口,展示“同城大神”或“附近陪玩”,支持基于地理位置的导航和到店核销功能。
三、核心功能
用户管理:
支持手机号、微信一键登录,后端通过jscode2session接口获取用户openid并生成token。
用户资料管理,包括头像、技能标签、游戏段位等,支持动态更新。
陪玩者管理:
陪玩者入驻认证,上传头像、语音介绍、游戏段位截图、实名认证(对接身份证API)。
陪玩者技能标签管理,支持按游戏类型、段位筛选陪玩者。
订单管理:
抢单派单系统,支持陪玩者抢单或系统派单,确保订单流转的准确性和安全性。
订单状态实时同步,包括待接单、执行中、待验收、已结算等状态。
支付系统集成,支持微信支付、支付宝,后端处理分佣逻辑(如平台抽成)并保障交易安全。
实时聊天:
支持文字、语音、图片发送,结合WebSocket实现消息即时推送。
动态圈子功能,用户可发布游戏攻略、组队信息,增强社区粘性。
财务管理:
自动分账系统,根据订单状态和分佣比例,自动计算陪玩者、平台、工会等各方的收益。
收益提现功能,陪玩者可查看今日/本月收入,申请提现(微信/支付宝),查看扣款记录(平台抽成)。
数据分析:
提供用户活跃度、订单转化率等指标的可视化分析,帮助创业者优化运营策略。
四、开发与部署
开发流程:
使用HBuilder X开发工具进行前端开发,配置微信小程序开发者账号。
后端使用PHP 7.4+、Composer依赖管理、TP6框架初始化。
服务器推荐2核4G配置(如腾讯云轻量服务器),安装Nginx+MySQL+PHP环境。
部署方案:
后端部署:通过宝塔面板上传代码,配置Nginx反向代理及SSL证书。
小程序发布:提交微信审核,配置合法域名(如API和图片存储域名)。
集成uni-pay插件实现微信支付,避免自行对接SDK的复杂度。
使用uni-websocket插件简化WebSocket连接管理。
五、优势与特点
跨平台支持:UniApp框架支持一次开发,多端运行,降低开发成本,提高开发效率。
功能丰富:集线上电竞陪玩代练、线下生活陪伴服务于一体,满足用户多样化需求。
自动化运营:抢单派单自动化、财务分账智能化,减轻创业者运营负担。
实时通信:低延迟语音技术,提升用户体验,增强平台竞争力。
数据分析支持:提供可视化数据分析,帮助创业者优化运营策略,提高盈利能力。

继续阅读 »

本方案旨在利用DCloud平台的跨平台开发能力,结合UniApp框架,打造一套集线上电竞陪玩代练、线下生活陪伴服务于一体的综合性平台。该平台支持多端运行(微信小程序、H5、iOS/Android APP),实现抢单派单自动化、财务分账智能化,为创业者提供一站式解决方案。

二、技术架构
前端技术:
UniApp框架:基于Vue.js的跨平台开发框架,支持一次开发,多端运行。通过UniApp,可以快速构建出适配微信小程序、H5、iOS/Android APP的用户界面。
UI组件库:使用如uView等第三方组件库,加速开发进程并提升界面一致性。
后端技术:
ThinkPHP 6(TP6)框架:提供高效的RESTful API开发支持,适合处理用户注册、订单管理、支付结算等核心逻辑。
数据库:MySQL作为主数据库,存储用户信息、订单记录、陪玩者资料等结构化数据;Redis辅助缓存高频访问数据(如用户会话、抢单锁)。
此处是获取完整源码和演示的地址!!!
实时通信:
WebSocket或第三方SDK:集成如融云等第三方SDK,实现聊天、语音连麦功能,支持文字、语音、图片发送,以及“正在输入”状态显示。
低延迟语音技术:对接腾讯云TRTC或阿里云RTS,实现低延迟(≤300ms)的语音连麦、游戏内语音覆盖,支持多人聊天室。
地理位置服务:
LBS定位接口:调用手机原生定位接口,展示“同城大神”或“附近陪玩”,支持基于地理位置的导航和到店核销功能。
三、核心功能
用户管理:
支持手机号、微信一键登录,后端通过jscode2session接口获取用户openid并生成token。
用户资料管理,包括头像、技能标签、游戏段位等,支持动态更新。
陪玩者管理:
陪玩者入驻认证,上传头像、语音介绍、游戏段位截图、实名认证(对接身份证API)。
陪玩者技能标签管理,支持按游戏类型、段位筛选陪玩者。
订单管理:
抢单派单系统,支持陪玩者抢单或系统派单,确保订单流转的准确性和安全性。
订单状态实时同步,包括待接单、执行中、待验收、已结算等状态。
支付系统集成,支持微信支付、支付宝,后端处理分佣逻辑(如平台抽成)并保障交易安全。
实时聊天:
支持文字、语音、图片发送,结合WebSocket实现消息即时推送。
动态圈子功能,用户可发布游戏攻略、组队信息,增强社区粘性。
财务管理:
自动分账系统,根据订单状态和分佣比例,自动计算陪玩者、平台、工会等各方的收益。
收益提现功能,陪玩者可查看今日/本月收入,申请提现(微信/支付宝),查看扣款记录(平台抽成)。
数据分析:
提供用户活跃度、订单转化率等指标的可视化分析,帮助创业者优化运营策略。
四、开发与部署
开发流程:
使用HBuilder X开发工具进行前端开发,配置微信小程序开发者账号。
后端使用PHP 7.4+、Composer依赖管理、TP6框架初始化。
服务器推荐2核4G配置(如腾讯云轻量服务器),安装Nginx+MySQL+PHP环境。
部署方案:
后端部署:通过宝塔面板上传代码,配置Nginx反向代理及SSL证书。
小程序发布:提交微信审核,配置合法域名(如API和图片存储域名)。
集成uni-pay插件实现微信支付,避免自行对接SDK的复杂度。
使用uni-websocket插件简化WebSocket连接管理。
五、优势与特点
跨平台支持:UniApp框架支持一次开发,多端运行,降低开发成本,提高开发效率。
功能丰富:集线上电竞陪玩代练、线下生活陪伴服务于一体,满足用户多样化需求。
自动化运营:抢单派单自动化、财务分账智能化,减轻创业者运营负担。
实时通信:低延迟语音技术,提升用户体验,增强平台竞争力。
数据分析支持:提供可视化数据分析,帮助创业者优化运营策略,提高盈利能力。

收起阅读 »

避坑:ios自定义启动图官方提供的storyboard 模板

iOS 启动图片

在storyboard 文件中包含了这么一段代码,我正常开发只是替换了外面的图片。快要上线了才发现启动图底部还有一行小字”hello uniapp“

                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="hello uniapp" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QBH-Ne-rcx">  
                                <rect key="frame" x="168" y="835" width="78.333333333333314" height="17"/>  
                                <fontDescription key="fontDescription" type="system" pointSize="14"/>  
                                <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>  
                                <nil key="highlightedColor"/>  
                            </label>
继续阅读 »

在storyboard 文件中包含了这么一段代码,我正常开发只是替换了外面的图片。快要上线了才发现启动图底部还有一行小字”hello uniapp“

                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="hello uniapp" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QBH-Ne-rcx">  
                                <rect key="frame" x="168" y="835" width="78.333333333333314" height="17"/>  
                                <fontDescription key="fontDescription" type="system" pointSize="14"/>  
                                <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>  
                                <nil key="highlightedColor"/>  
                            </label>
收起阅读 »

高并发不卡顿!TP6+Uniapp三角洲代练护航小程序源码,支持三端同步,千万级订单这样架构。

高并发不卡顿,千万级订单从容承载!专为三角洲代练护航场景量身打造,基于TP6+Uniapp双框架开发,一站式解决代练平台高并发、多端适配、订单管理难题,源码可直接部署、灵活二开,助力快速搭建专业代练护航平台。
核心架构亮点拉满,直击代练行业痛点,兼顾性能与实用性,适配三角洲、和平精英、暗区突围等热门电竞游戏代练场景,无论是个人创业者、电竞工作室,还是代练平台运营者,都能快速落地业务、抢占市场先机。


后端采用TP6框架,基于PHP 7.3+构建,减少数据库压力,避免高峰期阻塞,筑牢高并发底座。前端Uniapp实现“一套代码三端运行”,无缝适配微信小程序、H5、Android/iOS App,三端数据实时同步,兼顾便捷性与体验感。

针对千万级订单场景,源码专项优化架构,采用分库分表、读写分离设计,搭配Redis分布式锁防重复操作,结合负载均衡与动态扩容,轻松承载订单峰值冲击。同时深度适配三角洲代练场景,内置双角色管理、订单全流程管控、支付结算、营销裂变等核心功能,无需额外开发,快速上线运营。


查看演示及源码获取地址⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇

继续阅读 »

高并发不卡顿,千万级订单从容承载!专为三角洲代练护航场景量身打造,基于TP6+Uniapp双框架开发,一站式解决代练平台高并发、多端适配、订单管理难题,源码可直接部署、灵活二开,助力快速搭建专业代练护航平台。
核心架构亮点拉满,直击代练行业痛点,兼顾性能与实用性,适配三角洲、和平精英、暗区突围等热门电竞游戏代练场景,无论是个人创业者、电竞工作室,还是代练平台运营者,都能快速落地业务、抢占市场先机。


后端采用TP6框架,基于PHP 7.3+构建,减少数据库压力,避免高峰期阻塞,筑牢高并发底座。前端Uniapp实现“一套代码三端运行”,无缝适配微信小程序、H5、Android/iOS App,三端数据实时同步,兼顾便捷性与体验感。

针对千万级订单场景,源码专项优化架构,采用分库分表、读写分离设计,搭配Redis分布式锁防重复操作,结合负载均衡与动态扩容,轻松承载订单峰值冲击。同时深度适配三角洲代练场景,内置双角色管理、订单全流程管控、支付结算、营销裂变等核心功能,无需额外开发,快速上线运营。


查看演示及源码获取地址⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇

收起阅读 »

付费定制一个视频播放器插件

插件需求

要支持安卓、ios、网页,支持直播模式和回放模式,直播模式下可以支持切换线路,直播模式没有进度条,样式有些变化,回放模式下支持倍速播放,能做的联系我,付费

要支持安卓、ios、网页,支持直播模式和回放模式,直播模式下可以支持切换线路,直播模式没有进度条,样式有些变化,回放模式下支持倍速播放,能做的联系我,付费

【免费解答一切uniapp问题】

Debug

互相促进吧,我解决你的问题,正好补全我的知识点的死角。

互相促进吧,我解决你的问题,正好补全我的知识点的死角。

使用nativejs监听USB设备插拔

Native.JS

1.配置权限

<uses-feature android:name="android.hardware.usb.host"/>  
<uses-permission android:name="android.permission.USB_PERMISSION"/>

2.注册广播

const main = plus.android.runtimeMainActivity()  
const IntentFilter = plus.android.importClass('android.content.IntentFilter')  

/ 创建广播过滤器  
const filter = new IntentFilter()  
// filter.addAction(action)  
filter.addAction('android.hardware.usb.action.USB_DEVICE_ATTACHED')  
filter.addAction('android.hardware.usb.action.USB_DEVICE_DETACHED')  

const receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {  
    onReceive: function(context, intent) {  
        // console.log("USB广播触发了!!!")  
        // console.log("完整intent:", intent.toString())  
        const actionType = intent.toString().match(/act=([^\s]+)/)[1]  
        console.log(actionType)  
        if (actionType === 'android.hardware.usb.action.USB_DEVICE_ATTACHED') {  

        } else if (actionType === 'android.hardware.usb.action.USB_DEVICE_DETACHED') {  

        }  

    }  
})  

// 注册广播  
main.registerReceiver(receiver, filter)
继续阅读 »

1.配置权限

<uses-feature android:name="android.hardware.usb.host"/>  
<uses-permission android:name="android.permission.USB_PERMISSION"/>

2.注册广播

const main = plus.android.runtimeMainActivity()  
const IntentFilter = plus.android.importClass('android.content.IntentFilter')  

/ 创建广播过滤器  
const filter = new IntentFilter()  
// filter.addAction(action)  
filter.addAction('android.hardware.usb.action.USB_DEVICE_ATTACHED')  
filter.addAction('android.hardware.usb.action.USB_DEVICE_DETACHED')  

const receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {  
    onReceive: function(context, intent) {  
        // console.log("USB广播触发了!!!")  
        // console.log("完整intent:", intent.toString())  
        const actionType = intent.toString().match(/act=([^\s]+)/)[1]  
        console.log(actionType)  
        if (actionType === 'android.hardware.usb.action.USB_DEVICE_ATTACHED') {  

        } else if (actionType === 'android.hardware.usb.action.USB_DEVICE_DETACHED') {  

        }  

    }  
})  

// 注册广播  
main.registerReceiver(receiver, filter)
收起阅读 »

关于微信小程序自定义TabBar在uniapp中的使用

微信小程序 uniapp

在根项目(和main.js、pages.json等文件同级的地方)中创建微信小程序原生的 custom-tab-bar 文件,
可以微信小程序参考官方
https://developers.weixin.qq.com/miniprogram/dev/framework/ability/custom-tabbar.html
这里要注意的是
this.getTabBar().setData({
selected: 0
})
这种写法是在微信小程序原生中用的(微信小程序原生的.js中使用),
在uniapp中,应该如下使用,否者每次跳转tab页,都是第一个被选中
// 更新自定义 TabBar 选中状态(.vue中使用)
if (typeof this.$mp.page.getTabBar === 'function') {
const tabBar = this.$mp.page.getTabBar();
if (tabBar) {
tabBar.setData({
selected: 0
});
}
}

继续阅读 »

在根项目(和main.js、pages.json等文件同级的地方)中创建微信小程序原生的 custom-tab-bar 文件,
可以微信小程序参考官方
https://developers.weixin.qq.com/miniprogram/dev/framework/ability/custom-tabbar.html
这里要注意的是
this.getTabBar().setData({
selected: 0
})
这种写法是在微信小程序原生中用的(微信小程序原生的.js中使用),
在uniapp中,应该如下使用,否者每次跳转tab页,都是第一个被选中
// 更新自定义 TabBar 选中状态(.vue中使用)
if (typeof this.$mp.page.getTabBar === 'function') {
const tabBar = this.$mp.page.getTabBar();
if (tabBar) {
tabBar.setData({
selected: 0
});
}
}

收起阅读 »