HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

阿里云数据库迁移支付宝云的可靠方案

1.首先开通支付宝云空间

  1. 在hbuilderx里关联新的云空间
  2. 上传全部云函数及database
    4.这时候,支付宝云空间的数据库是空表,先从阿里云的数据库选择导出,保存为export.json
  3. 创建parse.js,内容如下

const fs = require('fs')
const path = require('path')
const readline = require('readline')

const cwd = process.cwd()
const inputPath = path.resolve(cwd, process.argv[2])
const outputPath = path.resolve(cwd, process.argv[3])

if (fs.existsSync(outputPath)) {
throw new Error(输出路径(${outputPath})已存在)
}

function getType(val) {
return Object.prototype.toString.call(val).slice(8, -1).toLowerCase()
}
function parseRecord(obj) {
const type = getType(obj)
switch (type) {
case 'object':
if (obj.$oid) {
return obj.$oid
}
if (obj.$date) {
return obj.$date
}
const keys = Object.keys(obj)
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
obj[key] = parseRecord(obj[key])
}
return obj
case 'array':
for (let i = 0; i < obj.length; i++) {
obj[i] = parseRecord(obj[i])
}
return obj
default:
return obj
}
}

async function parseCollection() {
const inputStream = fs.createReadStream(inputPath)
const outputStream = fs.createWriteStream(outputPath)

const rl = readline.createInterface({
input: inputStream
});

for await (const line of rl) {
const recordStr = line.trim()
if (!recordStr) {
continue
}
const record = parseRecord(JSON.parse(recordStr))
outputStream.write(JSON.stringify(record) + '\n')
}
rl.close()
console.log(处理后的文件已输出到${outputPath})
}

parseCollection()

6.将parse.js放到电脑上,比如E盘,创建data文件夹,将export.josn放进去,打开终端,输入指令 node E:\parse.js E:\data\export.json E:\data\output.json

7.将转好的数据导入到支付宝云对应的新表里

8.parse.js自行添加转换规则,以上只是简单示例,根据自己的表结构来

继续阅读 »

1.首先开通支付宝云空间

  1. 在hbuilderx里关联新的云空间
  2. 上传全部云函数及database
    4.这时候,支付宝云空间的数据库是空表,先从阿里云的数据库选择导出,保存为export.json
  3. 创建parse.js,内容如下

const fs = require('fs')
const path = require('path')
const readline = require('readline')

const cwd = process.cwd()
const inputPath = path.resolve(cwd, process.argv[2])
const outputPath = path.resolve(cwd, process.argv[3])

if (fs.existsSync(outputPath)) {
throw new Error(输出路径(${outputPath})已存在)
}

function getType(val) {
return Object.prototype.toString.call(val).slice(8, -1).toLowerCase()
}
function parseRecord(obj) {
const type = getType(obj)
switch (type) {
case 'object':
if (obj.$oid) {
return obj.$oid
}
if (obj.$date) {
return obj.$date
}
const keys = Object.keys(obj)
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
obj[key] = parseRecord(obj[key])
}
return obj
case 'array':
for (let i = 0; i < obj.length; i++) {
obj[i] = parseRecord(obj[i])
}
return obj
default:
return obj
}
}

async function parseCollection() {
const inputStream = fs.createReadStream(inputPath)
const outputStream = fs.createWriteStream(outputPath)

const rl = readline.createInterface({
input: inputStream
});

for await (const line of rl) {
const recordStr = line.trim()
if (!recordStr) {
continue
}
const record = parseRecord(JSON.parse(recordStr))
outputStream.write(JSON.stringify(record) + '\n')
}
rl.close()
console.log(处理后的文件已输出到${outputPath})
}

parseCollection()

6.将parse.js放到电脑上,比如E盘,创建data文件夹,将export.josn放进去,打开终端,输入指令 node E:\parse.js E:\data\export.json E:\data\output.json

7.将转好的数据导入到支付宝云对应的新表里

8.parse.js自行添加转换规则,以上只是简单示例,根据自己的表结构来

收起阅读 »

年轻创业者破局利器:全场景陪玩平台源码,智能里程计费+高并发架构,7天极速上线

技术分享 源码分享 微信小程序 uni_app项目

【年轻创业者破局利器:全场景陪玩平台源码,智能里程计费+高并发架构,7天极速上线】

在陪玩经济从线上游戏延伸至线下社交的浪潮中,一款专为创业者打造的「全场景陪玩系统」震撼上线!系统深度融合LBS定位与动态计费算法,支持线上语音陪玩、线下电竞开黑、主题派对组局等多元场景,独创「智能里程核算引擎」彻底解决线下见面费用分摊难题,配合高并发架构与全开源代码,助力创业者快速切入千亿级社交娱乐市场。

🔥 三大核心优势,重新定义陪玩平台标准
AI里程计费系统
系统集成高德/腾讯地图实时导航API,用户发起线下邀约时自动规划最优路线,支持驾车、公交、骑行、步行四种模式智能切换。独创「动态计价模型」可自定义设置:
基础里程费(如每公里3元)
时段溢价(高峰期+20%)
拼车折扣(3人同行享7折)
特殊场景加收(如电竞酒店场地费)
所有费用自动生成电子账单,支持AA制或主客分摊,彻底告别线下见面"算不清账"的尴尬。
企业级高并发架构
采用PHP+Swoole协程框架重构核心服务,单服务器支持5万+并发连接,配合Redis缓存与MySQL分库分表策略,轻松应对周末高峰时段流量冲击。系统内置负载均衡模块,可无缝扩展至多机集群,满足区域性陪玩平台向全国扩张的需求。
全栈开源二开自由
交付完整源码包(含前端Vue组件+后端Laravel API+数据库设计文档),核心模块无任何加密,支持深度二次开发:
扩展剧本杀、飞盘等新兴社交场景
对接美团/抖音本地生活服务
开发企业版陪玩管理系统
集成AI语音识别实现实时互动质检
💡 技术实现示例(PHP里程计费核心逻辑)
🚀 为什么选择我们?
极速部署:提供Docker一键安装包,30分钟完成环境搭建
商业闭环:内置支付分账、邀请裂变、会员体系等盈利模块
持续更新:每月推送新游戏接口与防封机制升级
生态支持:加入创业者联盟共享百万级用户流量池

继续阅读 »

【年轻创业者破局利器:全场景陪玩平台源码,智能里程计费+高并发架构,7天极速上线】

在陪玩经济从线上游戏延伸至线下社交的浪潮中,一款专为创业者打造的「全场景陪玩系统」震撼上线!系统深度融合LBS定位与动态计费算法,支持线上语音陪玩、线下电竞开黑、主题派对组局等多元场景,独创「智能里程核算引擎」彻底解决线下见面费用分摊难题,配合高并发架构与全开源代码,助力创业者快速切入千亿级社交娱乐市场。

🔥 三大核心优势,重新定义陪玩平台标准
AI里程计费系统
系统集成高德/腾讯地图实时导航API,用户发起线下邀约时自动规划最优路线,支持驾车、公交、骑行、步行四种模式智能切换。独创「动态计价模型」可自定义设置:
基础里程费(如每公里3元)
时段溢价(高峰期+20%)
拼车折扣(3人同行享7折)
特殊场景加收(如电竞酒店场地费)
所有费用自动生成电子账单,支持AA制或主客分摊,彻底告别线下见面"算不清账"的尴尬。
企业级高并发架构
采用PHP+Swoole协程框架重构核心服务,单服务器支持5万+并发连接,配合Redis缓存与MySQL分库分表策略,轻松应对周末高峰时段流量冲击。系统内置负载均衡模块,可无缝扩展至多机集群,满足区域性陪玩平台向全国扩张的需求。
全栈开源二开自由
交付完整源码包(含前端Vue组件+后端Laravel API+数据库设计文档),核心模块无任何加密,支持深度二次开发:
扩展剧本杀、飞盘等新兴社交场景
对接美团/抖音本地生活服务
开发企业版陪玩管理系统
集成AI语音识别实现实时互动质检
💡 技术实现示例(PHP里程计费核心逻辑)
🚀 为什么选择我们?
极速部署:提供Docker一键安装包,30分钟完成环境搭建
商业闭环:内置支付分账、邀请裂变、会员体系等盈利模块
持续更新:每月推送新游戏接口与防封机制升级
生态支持:加入创业者联盟共享百万级用户流量池

收起阅读 »

直播推流live-pusher开发心得-写在页面里正常_写在组件里就会报错

LivePusher直播推流插件配置 live_pusher

开发APP专用直播间页面:room.nvue (原生渲染(nvue)环境下开发布局开发),组件LivePusherDemo.nvue。报错

经过测试,发现<live-pusher>,写在页面room.nvue页面文件里正常,写在LivePusherDemo.nvue组件里就会报错,此问题已经2天了,我还没有解决好。
运行报下面的错:
20:08:43.587 [Vue warn]: Unhandled error during execution of native event handler
at <LivePusherDemokey=0ref="livePusherDemo">
at <RoompageId=4pagePath="pages/live/room"__pageQuery={"roomnumber":"666"}>
20:08:43.588 TypeError: Cannot read property 'meta' of undefined

下面是ai给出的原因,及解决方案:
具体原因拆解
live-pusher 是原生组件,不是 Vue 组件。它的 @statechange、@netstatus、@error 事件由原生层(Weex/Android/iOS)触发,不经过 Vue 的事件系统。

事件参数格式差异。在页面中,原生事件回调时 e 对象的格式是 { detail: { code: xxx, ... } },所以 e.detail 能正常解构。但在子组件中,由于 Weex 的事件传递机制不同,e 的格式可能变成了 { meta: { ... } } 或其他格式,导致 e.detail 为 undefined,然后 const { code } = e.detail 解构报错 Cannot read property 'meta' of undefined。

注意:错误信息中的 'meta' 字眼说明底层 Weex 在处理事件时使用了 meta 对象来包装事件数据,而 Vue 组件期望的是 detail 格式。

createLivePusherContext 在组件中创建的 context 内部引用的组件实例路径不对。在子组件中,原生层通过 this 回调事件时,可能无法正确找到 Vue 组件实例上的方法,或者事件的参数在传递过程中发生了格式丢失/变化。

为什么页面里正常、组件里就报错?
这本质上是 uni-app 在 nvue 中对原生组件(live-pusher、live-player)的组件化封装存在已知限制:

live-pusher 在页面(.nvue)中直接使用时,this 指向页面,原生事件回调路径是 原生层 -> 页面实例 -> 方法,格式正确。
live-pusher 被包在子组件中时,this 指向组件实例,原生事件回调路径变成了 原生层 -> 组件实例 -> 方法,但中间的 Weex 桥接层没有正确转换事件格式,导致 e.detail 丢失。

解决思路
有以下几种方向,你可以选择:

方案 A:放弃组件化封装(推荐,最稳妥) 将 live-pusher 直接写在 room.nvue 页面中,不封装成子组件。是 uni-app 官方推荐的做法。可以拆分出一部分逻辑(如配置管理、UI 弹窗)为普通子组件,但 live-pusher 标签本身必须保留在页面根模板中。

方案 B:事件处理加防御 + 手动适配事件格式 在组件的事件处理方法中,不直接解构 e.detail,而是做防御性判断,同时打印完整的 e 对象来确定实际格式:

方案 C:在 room.nvue 页面中创建 context,通过 props/emit 传递给子组件 让 live-pusher 的 id 暴露在页面上(不封装到子组件),在 room.nvue 的 onReady 中创建 context,然后通过 ref 调用子组件方法传递 context。这样可以避免子组件中 this 指向的问题。

总结:这是一个 uni-app nvue 环境下原生组件事件桥接的已知兼容性问题,不是你的代码逻辑错误。最简单的解决方式是将 <live-pusher> 标签直接放在 room.nvue 页面模板中,不要封装到 LivePusherDemo 子组件内。

【最终解决方案是】

将<live-pusher>写在页面里,设置开播的参数写在组件里,测试通过。
代码在下面的项目里可以查看。
直播间页面:/pages/live/room.nvue
主播设置开播参数:/pages/live/components_app/LivePusherApp.nvue
推流demo可以参考:/pages/video/push_app2.nvue

本项目前端代码已正式开源,旨在为开发者提供一套可参考的直播系统实现方案。欢迎各位同仁查阅源码、交流技术或将其作为二次开发的基础。

DCloud 插件市场**
便于直接在 HBuilderX 中导入使用:
点击查看插件详情 https://ext.dcloud.net.cn/plugin?id=26606

Gitee 代码仓库**
获取完整源代码及提交历史:
访问仓库地址 https://gitee.com/mldxmy/simplelive

继续阅读 »

开发APP专用直播间页面:room.nvue (原生渲染(nvue)环境下开发布局开发),组件LivePusherDemo.nvue。报错

经过测试,发现<live-pusher>,写在页面room.nvue页面文件里正常,写在LivePusherDemo.nvue组件里就会报错,此问题已经2天了,我还没有解决好。
运行报下面的错:
20:08:43.587 [Vue warn]: Unhandled error during execution of native event handler
at <LivePusherDemokey=0ref="livePusherDemo">
at <RoompageId=4pagePath="pages/live/room"__pageQuery={"roomnumber":"666"}>
20:08:43.588 TypeError: Cannot read property 'meta' of undefined

下面是ai给出的原因,及解决方案:
具体原因拆解
live-pusher 是原生组件,不是 Vue 组件。它的 @statechange、@netstatus、@error 事件由原生层(Weex/Android/iOS)触发,不经过 Vue 的事件系统。

事件参数格式差异。在页面中,原生事件回调时 e 对象的格式是 { detail: { code: xxx, ... } },所以 e.detail 能正常解构。但在子组件中,由于 Weex 的事件传递机制不同,e 的格式可能变成了 { meta: { ... } } 或其他格式,导致 e.detail 为 undefined,然后 const { code } = e.detail 解构报错 Cannot read property 'meta' of undefined。

注意:错误信息中的 'meta' 字眼说明底层 Weex 在处理事件时使用了 meta 对象来包装事件数据,而 Vue 组件期望的是 detail 格式。

createLivePusherContext 在组件中创建的 context 内部引用的组件实例路径不对。在子组件中,原生层通过 this 回调事件时,可能无法正确找到 Vue 组件实例上的方法,或者事件的参数在传递过程中发生了格式丢失/变化。

为什么页面里正常、组件里就报错?
这本质上是 uni-app 在 nvue 中对原生组件(live-pusher、live-player)的组件化封装存在已知限制:

live-pusher 在页面(.nvue)中直接使用时,this 指向页面,原生事件回调路径是 原生层 -> 页面实例 -> 方法,格式正确。
live-pusher 被包在子组件中时,this 指向组件实例,原生事件回调路径变成了 原生层 -> 组件实例 -> 方法,但中间的 Weex 桥接层没有正确转换事件格式,导致 e.detail 丢失。

解决思路
有以下几种方向,你可以选择:

方案 A:放弃组件化封装(推荐,最稳妥) 将 live-pusher 直接写在 room.nvue 页面中,不封装成子组件。是 uni-app 官方推荐的做法。可以拆分出一部分逻辑(如配置管理、UI 弹窗)为普通子组件,但 live-pusher 标签本身必须保留在页面根模板中。

方案 B:事件处理加防御 + 手动适配事件格式 在组件的事件处理方法中,不直接解构 e.detail,而是做防御性判断,同时打印完整的 e 对象来确定实际格式:

方案 C:在 room.nvue 页面中创建 context,通过 props/emit 传递给子组件 让 live-pusher 的 id 暴露在页面上(不封装到子组件),在 room.nvue 的 onReady 中创建 context,然后通过 ref 调用子组件方法传递 context。这样可以避免子组件中 this 指向的问题。

总结:这是一个 uni-app nvue 环境下原生组件事件桥接的已知兼容性问题,不是你的代码逻辑错误。最简单的解决方式是将 <live-pusher> 标签直接放在 room.nvue 页面模板中,不要封装到 LivePusherDemo 子组件内。

【最终解决方案是】

将<live-pusher>写在页面里,设置开播的参数写在组件里,测试通过。
代码在下面的项目里可以查看。
直播间页面:/pages/live/room.nvue
主播设置开播参数:/pages/live/components_app/LivePusherApp.nvue
推流demo可以参考:/pages/video/push_app2.nvue

本项目前端代码已正式开源,旨在为开发者提供一套可参考的直播系统实现方案。欢迎各位同仁查阅源码、交流技术或将其作为二次开发的基础。

DCloud 插件市场**
便于直接在 HBuilderX 中导入使用:
点击查看插件详情 https://ext.dcloud.net.cn/plugin?id=26606

Gitee 代码仓库**
获取完整源代码及提交历史:
访问仓库地址 https://gitee.com/mldxmy/simplelive

收起阅读 »

分享开发直播系统遇到的问题及解决方案(uniapp)

H5直播 直播

1. 项目背景与技术选型

近期启动了一个基于 UniApp 的直播系统开发项目。在明确需求后,迅速完成了技术栈选型并投入开发。整体架构旨在实现一套代码多端运行(H5、微信小程序、APP),涵盖首页、直播列表、个人中心等核心模块。

  • 前端框架:UniApp
  • 后端管理:FastAdmin
  • 即时通讯(聊天服务):Workerman
  • 目标平台:H5、微信小程序、原生 APP

2. 核心挑战与解决方案

虽然整体功能开发进展顺利,但在直播间页面的多端适配过程中遇到了三个关键技术瓶颈。以下是具体问题及最终的解决策略:

🔴 问题一:H5 端播放卡顿

  • 现象描述
    在 H5 端调试时,进入直播间页面加载极慢,体验严重卡顿。
  • 原因分析
    经排查,问题源于引用的第三方库 [hls.min.js]。该文件通过外网 CDN 引入,受网络波动影响较大,导致资源加载阻塞。
  • ✅ 解决方案
    本地化部署。将 [hls.min.js] 下载至项目本地目录,改为本地引用。此举显著提升了加载速度,彻底解决了卡顿问题。

    注:H5 端采用 m3u8 (HLS) 格式流,小程序端采用 rtmp 格式流。

🔴 问题二:APP 端页面层级错乱

  • 现象描述
    H5 和小程序端运行正常,但打包至 APP 端时,直播间页面布局完全错乱,视频组件覆盖异常。
  • 原因分析
    查阅文档后发现,这是由原生 APP 中视频组件的层级(Z-Index)导致的。试图在单一的 [.vue] 文件中通过条件编译兼容所有端(H5/小程序/APP)的方案,在处理复杂视频层级时存在天然局限。即便借助 AI 辅助调试三天,仍无法完美解决。
  • ✅ 解决方案
    拆分代码策略。放弃“一套代码通吃”的执念,改为维护两套直播间代码:
    1. [.vue] 文件:专用于 H5 和微信小程序。
    2. [.nvue]) 文件:专用于原生 APP(利用其原生渲染优势解决层级问题)。

🔴 问题三:APP 端推流功能实现困难

  • 现象描述
    由于 H5 限制及微信小程序政策调整(不再开放主播推流权限),推流功能仅在 APP 端有实际需求。在完成 [nvue]) 页面基础功能后,尝试利用 AI 生成推流逻辑,耗时两天仍未成功,且导致代码逻辑混乱。
  • 原因分析
    直播推流涉及底层摄像头权限、编码参数及推流协议,逻辑复杂度较高。完全依赖 AI 生成复杂业务逻辑容易导致代码结构不可控,维护成本激增。
  • ✅ 解决方案
    模块化隔离开发
    1. 单独开发一个仅包含推流功能的独立页面,确保核心逻辑纯净可用。
    2. 验证成功后,再将该功能模块移植整合到主直播间页面中。

      💡 经验总结:对于高复杂度的底层功能,AI 可作为辅助参考,但核心逻辑仍需人工把控,避免过度依赖导致代码失控。

3. 总结

本次开发经历表明,在跨端直播场景下,"因地制宜"比“强行统一”更有效。针对视频播放和推流等特殊场景,灵活采用 [.vue] 与 [.nvue] 分离的策略,以及模块化开发思路,是保障项目稳定落地的关键。

本项目前端代码已正式开源,旨在为开发者提供一套可参考的直播系统实现方案。欢迎各位同仁查阅源码、交流技术或将其作为二次开发的基础。

DCloud 插件市场**
便于直接在 HBuilderX 中导入使用:
点击查看插件详情 https://ext.dcloud.net.cn/plugin?id=26606

Gitee 代码仓库**
获取完整源代码及提交历史:
访问仓库地址 https://gitee.com/mldxmy/simplelive

继续阅读 »

1. 项目背景与技术选型

近期启动了一个基于 UniApp 的直播系统开发项目。在明确需求后,迅速完成了技术栈选型并投入开发。整体架构旨在实现一套代码多端运行(H5、微信小程序、APP),涵盖首页、直播列表、个人中心等核心模块。

  • 前端框架:UniApp
  • 后端管理:FastAdmin
  • 即时通讯(聊天服务):Workerman
  • 目标平台:H5、微信小程序、原生 APP

2. 核心挑战与解决方案

虽然整体功能开发进展顺利,但在直播间页面的多端适配过程中遇到了三个关键技术瓶颈。以下是具体问题及最终的解决策略:

🔴 问题一:H5 端播放卡顿

  • 现象描述
    在 H5 端调试时,进入直播间页面加载极慢,体验严重卡顿。
  • 原因分析
    经排查,问题源于引用的第三方库 [hls.min.js]。该文件通过外网 CDN 引入,受网络波动影响较大,导致资源加载阻塞。
  • ✅ 解决方案
    本地化部署。将 [hls.min.js] 下载至项目本地目录,改为本地引用。此举显著提升了加载速度,彻底解决了卡顿问题。

    注:H5 端采用 m3u8 (HLS) 格式流,小程序端采用 rtmp 格式流。

🔴 问题二:APP 端页面层级错乱

  • 现象描述
    H5 和小程序端运行正常,但打包至 APP 端时,直播间页面布局完全错乱,视频组件覆盖异常。
  • 原因分析
    查阅文档后发现,这是由原生 APP 中视频组件的层级(Z-Index)导致的。试图在单一的 [.vue] 文件中通过条件编译兼容所有端(H5/小程序/APP)的方案,在处理复杂视频层级时存在天然局限。即便借助 AI 辅助调试三天,仍无法完美解决。
  • ✅ 解决方案
    拆分代码策略。放弃“一套代码通吃”的执念,改为维护两套直播间代码:
    1. [.vue] 文件:专用于 H5 和微信小程序。
    2. [.nvue]) 文件:专用于原生 APP(利用其原生渲染优势解决层级问题)。

🔴 问题三:APP 端推流功能实现困难

  • 现象描述
    由于 H5 限制及微信小程序政策调整(不再开放主播推流权限),推流功能仅在 APP 端有实际需求。在完成 [nvue]) 页面基础功能后,尝试利用 AI 生成推流逻辑,耗时两天仍未成功,且导致代码逻辑混乱。
  • 原因分析
    直播推流涉及底层摄像头权限、编码参数及推流协议,逻辑复杂度较高。完全依赖 AI 生成复杂业务逻辑容易导致代码结构不可控,维护成本激增。
  • ✅ 解决方案
    模块化隔离开发
    1. 单独开发一个仅包含推流功能的独立页面,确保核心逻辑纯净可用。
    2. 验证成功后,再将该功能模块移植整合到主直播间页面中。

      💡 经验总结:对于高复杂度的底层功能,AI 可作为辅助参考,但核心逻辑仍需人工把控,避免过度依赖导致代码失控。

3. 总结

本次开发经历表明,在跨端直播场景下,"因地制宜"比“强行统一”更有效。针对视频播放和推流等特殊场景,灵活采用 [.vue] 与 [.nvue] 分离的策略,以及模块化开发思路,是保障项目稳定落地的关键。

本项目前端代码已正式开源,旨在为开发者提供一套可参考的直播系统实现方案。欢迎各位同仁查阅源码、交流技术或将其作为二次开发的基础。

DCloud 插件市场**
便于直接在 HBuilderX 中导入使用:
点击查看插件详情 https://ext.dcloud.net.cn/plugin?id=26606

Gitee 代码仓库**
获取完整源代码及提交历史:
访问仓库地址 https://gitee.com/mldxmy/simplelive

收起阅读 »

uniapp 私钥证书(p12)导入失败 好像是是用的openssl v3

客户那边好像是是用的openssl v3 https://app.liuyingyong.cn/build/errorLog/af981a00-24d7-11f1-8a69-45fd92a17fd0 这个是日志

客户那边好像是是用的openssl v3 https://app.liuyingyong.cn/build/errorLog/af981a00-24d7-11f1-8a69-45fd92a17fd0 这个是日志

基于vite8.0+vue3+openai仿写deepseek网页版ai智能流式聊天模板

OpenAI vue3 vite ai

vite8-deepseek-webai:最新前端技术栈vite8.0、vue3.5、arco-design、markdown、openai调用deepseek-v3.2聊天大模型。支持light+dark主题、深度思考、代码高亮复制代码/下载、katex公式、mermaid图表等功能。

项目技术知识

  • 开发工具:vscode
  • 前端框架:vite8.0+vue3.5.30+vue-router5.0.3
  • 智能大模型:deepseek-v3.2 + openai
  • 组件库:arco-design2.57.0
  • 状态管理:pinia3.0.4
  • markdown插件:markdown-it14.1.0
  • 代码高亮插件:highlight.js11.11.1
  • katex公式:plugin-katex0.25.1

项目结构目录

使用最新正式版vite8.0搭建项目,集成deepseek api大模型接口,vue3 setup语法编码开发。

vite8-vue3-webai网页版ai对话项目已经发布到我的原创作品集,欢迎下载使用哈!
Vite8+DeepSeek+Vue3.5搭建Web版AI智能聊天对话助理

如果对项目具体的实现感兴趣,可以看看下面这篇文章。
Vite8+DeepSeek网页版AI助手|vue3+arco本地web版ai流式打字问答系统

热文推荐

uniapp+deepseek流式ai助理|uniapp+vue3对接deepseek三端Ai问答模板
vite8.0+deepseek流式ai模板|vue3.5+vant4+markdown打字输出ai助手
tauri2.10+deepseek+vite7客户端ai系统|Tauri2+Vue3.5桌面AI程序Exe
electron39-vue3ai电脑端AI模板|electron39+deepseek+vite7聊天ai应用
Electron38-Vue3OS客户端OS系统|vite7+electron38+arco桌面os后台管理
Electron38-Wechat电脑端聊天|vite7+electron38仿微信桌面端聊天系统
electron38-admin桌面端后台|Electron38+Vue3+ElementPlus管理系统
最新版uniapp+vue3+uv-ui跨三端短视频+直播+聊天【H5+小程序+App端】
最新版uni-app+vue3+uv-ui跨三端仿微信app聊天应用【h5+小程序+app端】
Tauri2.9+Vue3桌面版OS系统|vite7+tauri2+arcoDesign电脑端os后台模板
Tauri2.8+Vue3聊天系统|vite7+tauri2+element-plus客户端仿微信聊天程序
Tauri2-Vite7Admin客户端管理后台|tauri2.9+vue3+element-plus后台系统
uniapp-vue3-os手机oa系统|uni-app+vue3跨三端os后台管理模板
Flutter3-MacOS桌面OS系统|flutter3.32+window_manager客户端OS模板
最新研发flutter3.27+bitsdojo_window+getx客户端仿微信聊天Exe应用
最新版Flutter3.32+Dart3.8跨平台仿微信app聊天界面|朋友圈

继续阅读 »

vite8-deepseek-webai:最新前端技术栈vite8.0、vue3.5、arco-design、markdown、openai调用deepseek-v3.2聊天大模型。支持light+dark主题、深度思考、代码高亮复制代码/下载、katex公式、mermaid图表等功能。

项目技术知识

  • 开发工具:vscode
  • 前端框架:vite8.0+vue3.5.30+vue-router5.0.3
  • 智能大模型:deepseek-v3.2 + openai
  • 组件库:arco-design2.57.0
  • 状态管理:pinia3.0.4
  • markdown插件:markdown-it14.1.0
  • 代码高亮插件:highlight.js11.11.1
  • katex公式:plugin-katex0.25.1

项目结构目录

使用最新正式版vite8.0搭建项目,集成deepseek api大模型接口,vue3 setup语法编码开发。

vite8-vue3-webai网页版ai对话项目已经发布到我的原创作品集,欢迎下载使用哈!
Vite8+DeepSeek+Vue3.5搭建Web版AI智能聊天对话助理

如果对项目具体的实现感兴趣,可以看看下面这篇文章。
Vite8+DeepSeek网页版AI助手|vue3+arco本地web版ai流式打字问答系统

热文推荐

uniapp+deepseek流式ai助理|uniapp+vue3对接deepseek三端Ai问答模板
vite8.0+deepseek流式ai模板|vue3.5+vant4+markdown打字输出ai助手
tauri2.10+deepseek+vite7客户端ai系统|Tauri2+Vue3.5桌面AI程序Exe
electron39-vue3ai电脑端AI模板|electron39+deepseek+vite7聊天ai应用
Electron38-Vue3OS客户端OS系统|vite7+electron38+arco桌面os后台管理
Electron38-Wechat电脑端聊天|vite7+electron38仿微信桌面端聊天系统
electron38-admin桌面端后台|Electron38+Vue3+ElementPlus管理系统
最新版uniapp+vue3+uv-ui跨三端短视频+直播+聊天【H5+小程序+App端】
最新版uni-app+vue3+uv-ui跨三端仿微信app聊天应用【h5+小程序+app端】
Tauri2.9+Vue3桌面版OS系统|vite7+tauri2+arcoDesign电脑端os后台模板
Tauri2.8+Vue3聊天系统|vite7+tauri2+element-plus客户端仿微信聊天程序
Tauri2-Vite7Admin客户端管理后台|tauri2.9+vue3+element-plus后台系统
uniapp-vue3-os手机oa系统|uni-app+vue3跨三端os后台管理模板
Flutter3-MacOS桌面OS系统|flutter3.32+window_manager客户端OS模板
最新研发flutter3.27+bitsdojo_window+getx客户端仿微信聊天Exe应用
最新版Flutter3.32+Dart3.8跨平台仿微信app聊天界面|朋友圈

收起阅读 »

蓝牙搜索与设备发现监听正确搭配

蓝牙搜索与设备发现是蓝牙操作的首要需求,下面是常见的封装实现:先启动搜索,再监听发现设备

uni.startBluetoothDevicesDiscovery({  
    allowDuplicatesKey: true,  
    success: () => {  
        uni.onBluetoothDeviceFound(res => {  
            console.log("startYasee =>", res);  
        });  
    }  
});

上面可以打开搜索,并发现设备,不过这个有个比较坑的地方,当stopBluetoothDevicesDiscovery停止搜索时,由于没有关闭监听uni.onBluetoothDeviceFound的API,导致这个设备发现监听一直在内存中运行。可见一个帖子https://ask.dcloud.net.cn/question/183922

问题

1.多调用一次就多执行一次onBluetoothDeviceFound,从而多一次重复上报设备,而且上报时间是一样的,需要处理重复相同的上报,给程序带来处理压力

2.由于onBluetoothDeviceFound监听一直未关闭,多次监听在内存中导致程序占用过高,易导致程序卡顿。

解决方案

uni.onBluetoothDeviceFound只执行一次,通过uni.$emit和uni.$on实现发现的设备上报,下面是封装的实现

/**  
 * 开始搜寻蓝牙设备【核心】  
 * 此操作比较耗费系统资源,请在搜索并连接到设备后调用uni.stopBluetoothDevicesDiscovery方法停止搜索  
 * @param     {Object}       options      同官方配置选项  
 * @param     {Function}     callback     回调函数,设置则接收uni.onBluetoothDeviceFound发现设备  
 */  
export function start(options = {}, callback = () => {}) {  
    return new Promise((resolve, reject) => {  
        const discovery = function() {  
            return new Promise((resolve, reject) => {  
                options.allowDuplicatesKey = true; //是否允许重复上报同一设备,若未能获取advertisData则需要找开  
                options.success = res => {  
                    if (callback) {  
                        // uni.onBluetoothDeviceFound没有关闭监听API,所以使用uni.$emit和uni.$on来解决重复监听问题  
                        // uni.onBluetoothDeviceFound(res2 => callback(res2));  
                        found();  
                        uni.$off("bluetooth-device-found");  
                        uni.$on("bluetooth-device-found", res2 => callback(res2));  
                    }  
                    resolve(res);  
                };  
                options.fail = reject;  
                uni.startBluetoothDevicesDiscovery(options);  
            });  
        };  
        discovery().then(resolve).catch(reject);  
    });  
}  

// 通过uni.$emit和uni.$on来解决重复监听onBluetoothDeviceFound的问题  
let foundable = false;  
function found() {  
    if (!foundable) {  
        foundable = true;  
        uni.onBluetoothDeviceFound(res => uni.$emit("bluetooth-device-found", res));  
    }  
}
继续阅读 »

蓝牙搜索与设备发现是蓝牙操作的首要需求,下面是常见的封装实现:先启动搜索,再监听发现设备

uni.startBluetoothDevicesDiscovery({  
    allowDuplicatesKey: true,  
    success: () => {  
        uni.onBluetoothDeviceFound(res => {  
            console.log("startYasee =>", res);  
        });  
    }  
});

上面可以打开搜索,并发现设备,不过这个有个比较坑的地方,当stopBluetoothDevicesDiscovery停止搜索时,由于没有关闭监听uni.onBluetoothDeviceFound的API,导致这个设备发现监听一直在内存中运行。可见一个帖子https://ask.dcloud.net.cn/question/183922

问题

1.多调用一次就多执行一次onBluetoothDeviceFound,从而多一次重复上报设备,而且上报时间是一样的,需要处理重复相同的上报,给程序带来处理压力

2.由于onBluetoothDeviceFound监听一直未关闭,多次监听在内存中导致程序占用过高,易导致程序卡顿。

解决方案

uni.onBluetoothDeviceFound只执行一次,通过uni.$emit和uni.$on实现发现的设备上报,下面是封装的实现

/**  
 * 开始搜寻蓝牙设备【核心】  
 * 此操作比较耗费系统资源,请在搜索并连接到设备后调用uni.stopBluetoothDevicesDiscovery方法停止搜索  
 * @param     {Object}       options      同官方配置选项  
 * @param     {Function}     callback     回调函数,设置则接收uni.onBluetoothDeviceFound发现设备  
 */  
export function start(options = {}, callback = () => {}) {  
    return new Promise((resolve, reject) => {  
        const discovery = function() {  
            return new Promise((resolve, reject) => {  
                options.allowDuplicatesKey = true; //是否允许重复上报同一设备,若未能获取advertisData则需要找开  
                options.success = res => {  
                    if (callback) {  
                        // uni.onBluetoothDeviceFound没有关闭监听API,所以使用uni.$emit和uni.$on来解决重复监听问题  
                        // uni.onBluetoothDeviceFound(res2 => callback(res2));  
                        found();  
                        uni.$off("bluetooth-device-found");  
                        uni.$on("bluetooth-device-found", res2 => callback(res2));  
                    }  
                    resolve(res);  
                };  
                options.fail = reject;  
                uni.startBluetoothDevicesDiscovery(options);  
            });  
        };  
        discovery().then(resolve).catch(reject);  
    });  
}  

// 通过uni.$emit和uni.$on来解决重复监听onBluetoothDeviceFound的问题  
let foundable = false;  
function found() {  
    if (!foundable) {  
        foundable = true;  
        uni.onBluetoothDeviceFound(res => uni.$emit("bluetooth-device-found", res));  
    }  
}
收起阅读 »

小程序分包引用分包 node_modules 中的依赖产物打包到分包中

uni_app x 体积优化 支付宝小程序 微信小程序 uniapp

前言

5.04 版本之前的 uniapp 和 uniappx,小程序端不支持分包引用的 node_modules 依赖打包到分包中,这对于很多备受小程序主包体积超出困扰的开发者来说,显然不是一个好消息。为了解决这一问题,5.04 版本开始,hx项目或者 cli 项目支持分包引用的 node_modules 依赖打包到分包中。下面介绍下具体的操作步骤,附件是示例项目。

分包优化

首先,需要在 mainfest.json 指定小程序节点下添加如下配置,例如:

{  
  "mp-weixin": {  
         "optimization": {  
            "subPackages": true  
          }  
   }  
}

筛选分包用的依赖

这一步尤为重要,要先梳理出哪些依赖是分包用到的,哪些是主包用到的,以及你期望的主包分包产物引用关系。

我们举一个简单的例子,主包用到了 lodash-esaddsubtract 函数,分包 sub 用到了 lodash-esmultiply 函数,这种分包用到的内容主包没用,就可以考虑使用这种策略,把 分包 sub 用到的 lodash-esmultiply 函数打包到 分包 sub 下,我们来看下 5.04 版本之前的效果

首先是项目结构,参考附件一

打包的产物体积,参考附件二

可以看到,用到的 lodash-es 的三个函数都被打包到了主包的 vendor.js 文件中。下面我们看下 5.04 如何解决这种问题

首先进入到分包的根目录,创建一个 package.json 文件,这里写分包需要用到的依赖,然后安装依赖,参考附件三。

然后重新打包即可。

可以看到 分包 sub 根目录下面多了 vendor.js 文件,里面就是 lodash-esmultiply 函数,打包效果参考附件四和附件五

注意事项

  • 该优化只对 vue3 项目生效
  • 支持 uniapp 和 uniappx 的小程序项目
  • 支持 hx 项目和 cli 项目,测试项目是 hx 项目,cli 项目同理
  • 仅支持 node_modules 中的 js 相关文件,不支持其他文件
  • 测试项目为附件六
  • 5.04 是指 hx 的版本号,uniapp 对应的依赖版本为 3.0.0-5000420260318001
继续阅读 »

前言

5.04 版本之前的 uniapp 和 uniappx,小程序端不支持分包引用的 node_modules 依赖打包到分包中,这对于很多备受小程序主包体积超出困扰的开发者来说,显然不是一个好消息。为了解决这一问题,5.04 版本开始,hx项目或者 cli 项目支持分包引用的 node_modules 依赖打包到分包中。下面介绍下具体的操作步骤,附件是示例项目。

分包优化

首先,需要在 mainfest.json 指定小程序节点下添加如下配置,例如:

{  
  "mp-weixin": {  
         "optimization": {  
            "subPackages": true  
          }  
   }  
}

筛选分包用的依赖

这一步尤为重要,要先梳理出哪些依赖是分包用到的,哪些是主包用到的,以及你期望的主包分包产物引用关系。

我们举一个简单的例子,主包用到了 lodash-esaddsubtract 函数,分包 sub 用到了 lodash-esmultiply 函数,这种分包用到的内容主包没用,就可以考虑使用这种策略,把 分包 sub 用到的 lodash-esmultiply 函数打包到 分包 sub 下,我们来看下 5.04 版本之前的效果

首先是项目结构,参考附件一

打包的产物体积,参考附件二

可以看到,用到的 lodash-es 的三个函数都被打包到了主包的 vendor.js 文件中。下面我们看下 5.04 如何解决这种问题

首先进入到分包的根目录,创建一个 package.json 文件,这里写分包需要用到的依赖,然后安装依赖,参考附件三。

然后重新打包即可。

可以看到 分包 sub 根目录下面多了 vendor.js 文件,里面就是 lodash-esmultiply 函数,打包效果参考附件四和附件五

注意事项

  • 该优化只对 vue3 项目生效
  • 支持 uniapp 和 uniappx 的小程序项目
  • 支持 hx 项目和 cli 项目,测试项目是 hx 项目,cli 项目同理
  • 仅支持 node_modules 中的 js 相关文件,不支持其他文件
  • 测试项目为附件六
  • 5.04 是指 hx 的版本号,uniapp 对应的依赖版本为 3.0.0-5000420260318001
收起阅读 »

【源码交付】商用级婚恋交友系统 匹配算法 + 实名认证 + 红娘CRM uniapp双端

微信小程序

集成协同过滤匹配算法、权威实名认证、红娘后台管理系统,支持二开,快速部署商用。

产品详情页文案(严谨技术向)

🚀 适用场景

本产品适用于:高端婚恋服务机构、同城婚恋平台运营、高校校友婚恋小程序拓展、大型社交APP的婚恋子模块。

📱 技术栈与开发环境

  • 前端框架uni-app (Vue3 Composition API / Vue2 可选),支持编译到 iOS App、Android App、H5 以及各大小程序。
  • 后端语言:Java (SpringBoot) / PHP (ThinkPHP/Laravel) (请根据你实际的后端替换)
  • 数据库:MySQL 5.7+ / 8.0 + Redis
  • UI组件:uView / ColorUI(提供完整设计源文件)

🔥 核心功能模块详解

1. 智能匹配算法(核心卖点)

摒弃传统的“只看脸”模式,本系统内置多维度协同过滤算法

  • 基础属性:年龄、身高、学历、收入硬性条件筛选。
  • 心理测试:内置MBTI(迈尔斯-布里格斯类型指标)或自定义恋爱观测试题库,通过用户答案计算契合度。
  • 行为算法:基于用户的浏览行为、点赞记录,推荐潜在匹配对象。
  • 每日推荐:首页生成“今日优选”列表,显示匹配百分比,增加用户粘性。

此处是获取完整演示和查看源码的地址哟~

2. 权威实名认证(安全合规)

针对婚恋行业强监管需求,对接权威数据源

  • 身份证OCR识别:自动识别身份证信息,减少用户输入。
  • 活体检测:集成阿里云/腾讯云/旷视等权威人脸识别SDK,确保人证合一。
  • 学历/房产/车辆认证(可选):支持上传证件,由后台人工审核。
  • 防欺诈机制:同一身份证/手机号禁止重复注册。
3. 红娘CRM管理后台(商业化核心)

专为婚恋中介/红娘设计的管理面板,打通线上与线下服务:

  • 会员管理:查看所有用户资料、认证状态、会员到期时间。
  • 邀约匹配:红娘可手动筛选男女用户,一键发起“牵线”或线下约见邀请。
  • 服务工单:记录红娘与用户的跟进记录、通话记录、回访记录。
  • 付费解锁:后台可配置用户查看联系方式需支付“红豆”或购买VIP。
  • 活动管理:发布线下相亲活动,用户在线报名,后台统计名单。
4. 即时通讯(IM)系统
  • 集成腾讯云IM / 融云 / 环信(或自研WebSocket)。
  • 支持文本、图片、语音、礼物打赏。
  • 敏感词过滤:防止诈骗词汇传播。

📦 交付清单(确保严谨有效)

  • ✅ 全套 uni-app 前端源代码(Android和iOS打包证书配置教程)。
  • ✅ 后端PHP/Java完整源代码(非加密,支持二次开发)。
  • ✅ 数据库结构SQL文件及Redis配置。
  • ✅ 服务器环境部署文档(LNMP/LAMP 推荐)。
  • ✅ 第三方服务申请教程(微信支付、支付宝支付、阿里云认证接口申请)。
  • ✅ 后台管理操作手册。

🛠 为什么选择这套系统(针对技术员的优势)

  1. 架构清晰:代码注释详细,遵循PSR规范(如果是PHP),MVC(模型-视图-控制器)分层明确,方便技术员快速接手。
  2. 高并发预留:Redis缓存热门数据,避免频繁查询数据库。
  3. 独立部署:源码全交付,数据完全掌握在自己手里,无年费、无强制云服务绑定。
  4. 适配性:完美适配iPhone刘海屏、底部安全区;Android各厂商兼容性良好。

为了容易被DCloud用户搜索到的 关键词 Tags

uni-app, 婚恋交友, 相亲交友, 红娘系统, CRM, 实名认证, 人脸识别, 协同过滤, 匹配算法, IM, 即时通讯, 社交APP, 原生APP, 双端, PHP源码, Java源码, 二开, 同城交友, 会员系统


给你的发布建议(针对DCloud平台特性)

  1. 截图与演示

    • 第一张图放系统架构图(前端、后端、第三方接口的关系),技术员喜欢看架构。
    • 第二、三张图放后台CRM的看板截图,展示数据统计能力。
    • 第四张图放匹配算法测试界面截图,展示匹配度百分比。
  2. 描述匹配算法时的严谨措辞

    • 不要写“AI人工智能超级算法”这种虚的词。
    • 要写“基于用户画像标签(身高、学历、房产)和用户行为(滑动、停留时长)的加权召回排序算法”。(这样显得专业且真实)。
  3. 关于实名认证

    • 务必在描述中注明:“本系统不含第三方实名认证接口费,源码仅包含接口对接逻辑,使用时需自行购买阿里云/腾讯云资源。” 这样避免了法律风险,也显得你做事严谨。
  4. 增值服务

    • 可以在描述末尾加上:“提供有偿安装部署服务,详情私聊”。很多买了源码但是不会配置环境的技术员需要这个。

这套描述既突出了商业价值(红娘CRM),又照顾了技术人员的选型痛点(源码全、易二开、架构清晰),非常适合在DCloud平台发布。

继续阅读 »

集成协同过滤匹配算法、权威实名认证、红娘后台管理系统,支持二开,快速部署商用。

产品详情页文案(严谨技术向)

🚀 适用场景

本产品适用于:高端婚恋服务机构、同城婚恋平台运营、高校校友婚恋小程序拓展、大型社交APP的婚恋子模块。

📱 技术栈与开发环境

  • 前端框架uni-app (Vue3 Composition API / Vue2 可选),支持编译到 iOS App、Android App、H5 以及各大小程序。
  • 后端语言:Java (SpringBoot) / PHP (ThinkPHP/Laravel) (请根据你实际的后端替换)
  • 数据库:MySQL 5.7+ / 8.0 + Redis
  • UI组件:uView / ColorUI(提供完整设计源文件)

🔥 核心功能模块详解

1. 智能匹配算法(核心卖点)

摒弃传统的“只看脸”模式,本系统内置多维度协同过滤算法

  • 基础属性:年龄、身高、学历、收入硬性条件筛选。
  • 心理测试:内置MBTI(迈尔斯-布里格斯类型指标)或自定义恋爱观测试题库,通过用户答案计算契合度。
  • 行为算法:基于用户的浏览行为、点赞记录,推荐潜在匹配对象。
  • 每日推荐:首页生成“今日优选”列表,显示匹配百分比,增加用户粘性。

此处是获取完整演示和查看源码的地址哟~

2. 权威实名认证(安全合规)

针对婚恋行业强监管需求,对接权威数据源

  • 身份证OCR识别:自动识别身份证信息,减少用户输入。
  • 活体检测:集成阿里云/腾讯云/旷视等权威人脸识别SDK,确保人证合一。
  • 学历/房产/车辆认证(可选):支持上传证件,由后台人工审核。
  • 防欺诈机制:同一身份证/手机号禁止重复注册。
3. 红娘CRM管理后台(商业化核心)

专为婚恋中介/红娘设计的管理面板,打通线上与线下服务:

  • 会员管理:查看所有用户资料、认证状态、会员到期时间。
  • 邀约匹配:红娘可手动筛选男女用户,一键发起“牵线”或线下约见邀请。
  • 服务工单:记录红娘与用户的跟进记录、通话记录、回访记录。
  • 付费解锁:后台可配置用户查看联系方式需支付“红豆”或购买VIP。
  • 活动管理:发布线下相亲活动,用户在线报名,后台统计名单。
4. 即时通讯(IM)系统
  • 集成腾讯云IM / 融云 / 环信(或自研WebSocket)。
  • 支持文本、图片、语音、礼物打赏。
  • 敏感词过滤:防止诈骗词汇传播。

📦 交付清单(确保严谨有效)

  • ✅ 全套 uni-app 前端源代码(Android和iOS打包证书配置教程)。
  • ✅ 后端PHP/Java完整源代码(非加密,支持二次开发)。
  • ✅ 数据库结构SQL文件及Redis配置。
  • ✅ 服务器环境部署文档(LNMP/LAMP 推荐)。
  • ✅ 第三方服务申请教程(微信支付、支付宝支付、阿里云认证接口申请)。
  • ✅ 后台管理操作手册。

🛠 为什么选择这套系统(针对技术员的优势)

  1. 架构清晰:代码注释详细,遵循PSR规范(如果是PHP),MVC(模型-视图-控制器)分层明确,方便技术员快速接手。
  2. 高并发预留:Redis缓存热门数据,避免频繁查询数据库。
  3. 独立部署:源码全交付,数据完全掌握在自己手里,无年费、无强制云服务绑定。
  4. 适配性:完美适配iPhone刘海屏、底部安全区;Android各厂商兼容性良好。

为了容易被DCloud用户搜索到的 关键词 Tags

uni-app, 婚恋交友, 相亲交友, 红娘系统, CRM, 实名认证, 人脸识别, 协同过滤, 匹配算法, IM, 即时通讯, 社交APP, 原生APP, 双端, PHP源码, Java源码, 二开, 同城交友, 会员系统


给你的发布建议(针对DCloud平台特性)

  1. 截图与演示

    • 第一张图放系统架构图(前端、后端、第三方接口的关系),技术员喜欢看架构。
    • 第二、三张图放后台CRM的看板截图,展示数据统计能力。
    • 第四张图放匹配算法测试界面截图,展示匹配度百分比。
  2. 描述匹配算法时的严谨措辞

    • 不要写“AI人工智能超级算法”这种虚的词。
    • 要写“基于用户画像标签(身高、学历、房产)和用户行为(滑动、停留时长)的加权召回排序算法”。(这样显得专业且真实)。
  3. 关于实名认证

    • 务必在描述中注明:“本系统不含第三方实名认证接口费,源码仅包含接口对接逻辑,使用时需自行购买阿里云/腾讯云资源。” 这样避免了法律风险,也显得你做事严谨。
  4. 增值服务

    • 可以在描述末尾加上:“提供有偿安装部署服务,详情私聊”。很多买了源码但是不会配置环境的技术员需要这个。

这套描述既突出了商业价值(红娘CRM),又照顾了技术人员的选型痛点(源码全、易二开、架构清晰),非常适合在DCloud平台发布。

收起阅读 »

You do not have required contracts to perform an operation (403)

苹果协议更新了,需要登录账号同意协议更新。

  1. https://appstoreconnect.apple.com/ 这个页面会有一个黄色的提示,提示协议需要更新,点击蓝色 查看 按钮进行跳转 到https://developer.apple.com/account
  2. 弹窗 协议点击 确定即可

分享原文来自:https://www.yunedit.com/article/requiredcontract

继续阅读 »

苹果协议更新了,需要登录账号同意协议更新。

  1. https://appstoreconnect.apple.com/ 这个页面会有一个黄色的提示,提示协议需要更新,点击蓝色 查看 按钮进行跳转 到https://developer.apple.com/account
  2. 弹窗 协议点击 确定即可

分享原文来自:https://www.yunedit.com/article/requiredcontract

收起阅读 »

HBuilderX5.03版本升级,自动提示特别慢

bug反馈

如何修复?是 bug 吗?

如何修复?是 bug 吗?

【苹果企业账号被冻结】你们是否出现过这种情况

因使用过云打包服务,我们公司使用的是苹果企业证书,仅使用过HbuildX上传过苹果企业证书。过了没多久,就收到苹果冻结企业账号的邮件,说我们证书泄漏。

几经交涉后,账号得到恢复,并且苹果给出了泄漏的证书所打包的APP。

继续阅读 »

因使用过云打包服务,我们公司使用的是苹果企业证书,仅使用过HbuildX上传过苹果企业证书。过了没多久,就收到苹果冻结企业账号的邮件,说我们证书泄漏。

几经交涉后,账号得到恢复,并且苹果给出了泄漏的证书所打包的APP。

收起阅读 »