nvue页面内单文件组件的国际化
先上场景案例:
nvue 页面中的弹窗组件 up-popup, 初始状态不显示 , 使用nvue国际化方案, 页面进入后, 不打开弹窗前就修语言, 回到该页面,打开弹窗, 则显示的是 修改前的语言
uni-i18n源代码原因:t 是惰性的
let t = (key, values) => {
if (typeof getApp !== 'function') {
// app view
/* eslint-disable no-func-assign */
t = function (key, values) {
return i18n.t(key, values);
};
}
else {
let isWatchedAppLocale = false;
t = function (key, values) {
const appVm = getApp().$vm;
if (appVm) {
// 触发响应式
appVm.$locale;
if (!isWatchedAppLocale) {
isWatchedAppLocale = true;
watchAppLocale(appVm, i18n);
}
}
return i18n.t(key, values);
};
}
return t(key, values);
};
我的解决方案:预热 t, 打破惰性
方案:
onMounted(() => {
t('appName');
});
封装 hook
import { onMounted } from 'vue';
/**
* @name useNvueI18nWarmup
* @description 一个旨在处理 nvue 页面中 i18n 响应式问题的组合式函数, 预热国际化 t,打破 t 的惰性。
*/
export function useNvueI18nWarmup(t: (key: string) => string) {
onMounted(() => {
t('appName');
});
}
vue3组合式使用
import { useNvueI18nWarmup } from '@/common/useNvueI18nWarmup';
import { initVueI18n } from '@dcloudio/uni-i18n'
// const messages = {} 此处内容省略,和 vue 全局引入的写法一致
const { t } = initVueI18n(messages)
useNvueI18nWarmup(t);
先上场景案例:
nvue 页面中的弹窗组件 up-popup, 初始状态不显示 , 使用nvue国际化方案, 页面进入后, 不打开弹窗前就修语言, 回到该页面,打开弹窗, 则显示的是 修改前的语言
uni-i18n源代码原因:t 是惰性的
let t = (key, values) => {
if (typeof getApp !== 'function') {
// app view
/* eslint-disable no-func-assign */
t = function (key, values) {
return i18n.t(key, values);
};
}
else {
let isWatchedAppLocale = false;
t = function (key, values) {
const appVm = getApp().$vm;
if (appVm) {
// 触发响应式
appVm.$locale;
if (!isWatchedAppLocale) {
isWatchedAppLocale = true;
watchAppLocale(appVm, i18n);
}
}
return i18n.t(key, values);
};
}
return t(key, values);
};
我的解决方案:预热 t, 打破惰性
方案:
onMounted(() => {
t('appName');
});
封装 hook
import { onMounted } from 'vue';
/**
* @name useNvueI18nWarmup
* @description 一个旨在处理 nvue 页面中 i18n 响应式问题的组合式函数, 预热国际化 t,打破 t 的惰性。
*/
export function useNvueI18nWarmup(t: (key: string) => string) {
onMounted(() => {
t('appName');
});
}
vue3组合式使用
import { useNvueI18nWarmup } from '@/common/useNvueI18nWarmup';
import { initVueI18n } from '@dcloudio/uni-i18n'
// const messages = {} 此处内容省略,和 vue 全局引入的写法一致
const { t } = initVueI18n(messages)
useNvueI18nWarmup(t);
收起阅读 »
Uni app x 打包 apk 植物人也会
🟢🟢 点个关注不迷路🟢🟢 (≧◡≦) ♡
🥺拜托了欧尼酱,阿里嘎多 Thank you 高马斯密达💖
👇👇⬇️⬇️
| 哔哩哔哩|CSDN|Github|Gitcode|
| 传送门 | 传送门 | 传送门 | 传送门 |
> 一般CSDN会第一时间更新图文教程,后续会上传源码到Github和Gitcode上,最后再录视频教程发到哔哩哔哩,如果没时间的话可能不会录视频。
Uni App X 安卓本地离线打包
介绍:Uni App X 安卓本地离线打包喂饭教程
效果图片
🟢温馨提示:如果图片无法加载请前往国内Gitcode镜像仓库
代码地址
🟢温馨提示:如果图片无法加载请前往国内Gitcode镜像仓库
Github:https://github.com/BrokenDreamTech/UniAppxPack
Gitcode:https://gitcode.com/BrokenDreamTech/UniAppxPack
特性
Github Action一键打包,无需配置Android Studio配置
压缩混淆配置,打包"Hello" apk大小:7.7MB
HBuilder X 4.85
HBuilder X 4.87
环境
HBuilder X 4.87
Android Studio 2025.2.2
教程
视频教程
传送门:https://www.bilibili.com/video/BV1yW6oBeEqy
图文教程
- 使用HBuilder X打开你的uni-app x项目点击"工具栏"-"发行"-"App-Android/iOS-本地打包"-"生成本地App打包资源"
- 因为"此项目"已有一个示例uni-app x,所以先把示例项目资源删除(不要乱删文件):
- 删除"此项目"的"app/src/main/assets/apps"文件夹下的所有
- 删除"此项目"的"app/src/main/java"文件夹下的:"index.kt"文件和"pages"文件夹
- 将生成的" UNI XXXXXX"文件夹复制到"此项目"的"app/src/main/assets/apps"文件夹下
- 将生成的"uniappx/app-android/src"文件夹下的所有东西复制粘贴到"此项目"的"app/src/main/java"文件夹下
-
使用Android Studio打开"此项目",直接打包即可。
> 打包apk,在"此项目"的根目录打开命令行,执行:gradlew assembleRelease
一键打包 (不建议使用此方案,有构建时长限制,推荐自己按教程在本地打包)
- 下载或fork此项目,将仓库设置为私有(如果你不想公开你的项目),按照教程将uni-app x资源替换为自己的
- 将项目推送到Githab上,点击"Actions"-"Build Release",等待构建完成
- 构建完成后进入详情页,点击下载产物,下载后需解压
鸣谢
https://doc.dcloud.net.cn/uni-app-x/native/download/android.html
🟢🟢 点个关注不迷路🟢🟢 (≧◡≦) ♡
🥺拜托了欧尼酱,阿里嘎多 Thank you 高马斯密达💖
👇👇⬇️⬇️
| 哔哩哔哩|CSDN|Github|Gitcode|
| 传送门 | 传送门 | 传送门 | 传送门 |
> 一般CSDN会第一时间更新图文教程,后续会上传源码到Github和Gitcode上,最后再录视频教程发到哔哩哔哩,如果没时间的话可能不会录视频。
Uni App X 安卓本地离线打包
介绍:Uni App X 安卓本地离线打包喂饭教程
效果图片
🟢温馨提示:如果图片无法加载请前往国内Gitcode镜像仓库
代码地址
🟢温馨提示:如果图片无法加载请前往国内Gitcode镜像仓库
Github:https://github.com/BrokenDreamTech/UniAppxPack
Gitcode:https://gitcode.com/BrokenDreamTech/UniAppxPack
特性
Github Action一键打包,无需配置Android Studio配置
压缩混淆配置,打包"Hello" apk大小:7.7MB
HBuilder X 4.85
HBuilder X 4.87
环境
HBuilder X 4.87
Android Studio 2025.2.2
教程
视频教程
传送门:https://www.bilibili.com/video/BV1yW6oBeEqy
图文教程
- 使用HBuilder X打开你的uni-app x项目点击"工具栏"-"发行"-"App-Android/iOS-本地打包"-"生成本地App打包资源"
- 因为"此项目"已有一个示例uni-app x,所以先把示例项目资源删除(不要乱删文件):
- 删除"此项目"的"app/src/main/assets/apps"文件夹下的所有
- 删除"此项目"的"app/src/main/java"文件夹下的:"index.kt"文件和"pages"文件夹
- 将生成的" UNI XXXXXX"文件夹复制到"此项目"的"app/src/main/assets/apps"文件夹下
- 将生成的"uniappx/app-android/src"文件夹下的所有东西复制粘贴到"此项目"的"app/src/main/java"文件夹下
-
使用Android Studio打开"此项目",直接打包即可。
> 打包apk,在"此项目"的根目录打开命令行,执行:gradlew assembleRelease
一键打包 (不建议使用此方案,有构建时长限制,推荐自己按教程在本地打包)
- 下载或fork此项目,将仓库设置为私有(如果你不想公开你的项目),按照教程将uni-app x资源替换为自己的
- 将项目推送到Githab上,点击"Actions"-"Build Release",等待构建完成
- 构建完成后进入详情页,点击下载产物,下载后需解压
鸣谢
https://doc.dcloud.net.cn/uni-app-x/native/download/android.html
https://doc.dcloud.net.cn/uni-app-x/native/use/android.html
收起阅读 »关于uni-id-co云对象URL化,短信登录无法发送的问题。官方uni-id-pages模板自带的uni-id-co的bug修复
uni-id-pages功能全面,所以思考将自己的应用系统直接使用这个用户体系。
由于uni-id-co目前官方不支持在云对象中直接调用,但官方推荐了HTTP的调用方式,就是云对象URL化。
由于uni-id-co的功能接口太多权限太大,如果直接url化给客户端,肯定很多安全问题 。所以我们可以在自己云对象中,去调用url化的uni-id-co。
根据官方文档需要这3个关键参数: uniPlatform、appId、deviceId
其中deviceId 肯定是从客户端提起过来。这是客户端唯一标识。
uniPlatform直接设为‘web’,
最后一个是appId,就是uni官方的应用Id,但这个简单的appId参数,在短信发送这个功能上折磨了我好久。为避免其他同学也遇到这个需求和问题。所以写下本文。
因为我们在小程序端短信功能一切正常,所以显然容易想到直接让从云对象登录的统一模拟成小程序,也就是把appId设置成小程序的appId,这样跟小程序的用户体系就统一了,这也是需求,因为我们应用系统的用户同时也是小程序的用户。
这是ClientInfo的模拟:
this.customClientInfo = {
uniPlatform: 'web',
appId: 'UNIXXXXXXX',
deviceId: dvid,
locale: 'zh-Hans'
}
这样子的模拟,在云对象中许多其他功能都跑通了,包括账户密码登录等等,但是短信登录确一直报参数错误:appid
下面的传参方式是严格按官方文档要求来的,http请求的Post数据:
const requestData = {
clientInfo: this.customClientInfo,
params: {
mobile: params.mobile,
captcha: params.captcha,
scene: 'login-by-sms',
}
};
通过扒uni-id-co的源码,最终定位了问题出在【 uni-id-co/lib/utils/sms.js 】这个文件里的第61行左右。官方模版原本是这样写的。
await uniCloud.sendSms({
smsKey: smsConfig.smsKey,
smsSecret: smsConfig.smsSecret,
phone: mobile,
templateId,
data: {
name: smsConfig.name,
code,
action,
expMinute: '' + Math.round(codeExpiresIn / 60)
}
})
在小程序端可以发送成功,但是http端却报参数错误:appid
说明uniCloud.sendSms这个函数里面内置了从小程序端获取appid的方式。
然而来自于http端的appid即使你按官方文档要求传了,在这里依然丢失了。
所以得自己传进去,也就是在sendSms的参数里加一行appId: clientInfo.appId
到这里算是比较容易想到的,但当你这样 appId: clientInfo.appId传进去,发现问题依然在,肯定就跑去找其他原因了。
但, uniCloud.sendSms这个源码看不到,找遍了其他地方又找不到原因,花了大量时间后,不得不回到这里来重新思考,
最后是这把 appId: clientInfo.appId 改为 appid: clientInfo.appId ,发现终于成功了,是该喜还是什么别的表情?
一个大写I改成小写i,花了整整一天!
【问题最终解决方式】
const clientInfo = this.getUniversalClientInfo()
await uniCloud.sendSms({
appid: clientInfo.appId, //注意 sendSms的参数名 appid 必须小写 !就是这个小写折腾了我整整1天!!
smsKey: smsConfig.smsKey,
smsSecret: smsConfig.smsSecret,
phone: mobile,
templateId,
data: {
name: smsConfig.name,
code,
action,
expMinute: '' + Math.round(codeExpiresIn / 60)
}
})
uni-id-pages功能全面,所以思考将自己的应用系统直接使用这个用户体系。
由于uni-id-co目前官方不支持在云对象中直接调用,但官方推荐了HTTP的调用方式,就是云对象URL化。
由于uni-id-co的功能接口太多权限太大,如果直接url化给客户端,肯定很多安全问题 。所以我们可以在自己云对象中,去调用url化的uni-id-co。
根据官方文档需要这3个关键参数: uniPlatform、appId、deviceId
其中deviceId 肯定是从客户端提起过来。这是客户端唯一标识。
uniPlatform直接设为‘web’,
最后一个是appId,就是uni官方的应用Id,但这个简单的appId参数,在短信发送这个功能上折磨了我好久。为避免其他同学也遇到这个需求和问题。所以写下本文。
因为我们在小程序端短信功能一切正常,所以显然容易想到直接让从云对象登录的统一模拟成小程序,也就是把appId设置成小程序的appId,这样跟小程序的用户体系就统一了,这也是需求,因为我们应用系统的用户同时也是小程序的用户。
这是ClientInfo的模拟:
this.customClientInfo = {
uniPlatform: 'web',
appId: 'UNIXXXXXXX',
deviceId: dvid,
locale: 'zh-Hans'
}
这样子的模拟,在云对象中许多其他功能都跑通了,包括账户密码登录等等,但是短信登录确一直报参数错误:appid
下面的传参方式是严格按官方文档要求来的,http请求的Post数据:
const requestData = {
clientInfo: this.customClientInfo,
params: {
mobile: params.mobile,
captcha: params.captcha,
scene: 'login-by-sms',
}
};
通过扒uni-id-co的源码,最终定位了问题出在【 uni-id-co/lib/utils/sms.js 】这个文件里的第61行左右。官方模版原本是这样写的。
await uniCloud.sendSms({
smsKey: smsConfig.smsKey,
smsSecret: smsConfig.smsSecret,
phone: mobile,
templateId,
data: {
name: smsConfig.name,
code,
action,
expMinute: '' + Math.round(codeExpiresIn / 60)
}
})
在小程序端可以发送成功,但是http端却报参数错误:appid
说明uniCloud.sendSms这个函数里面内置了从小程序端获取appid的方式。
然而来自于http端的appid即使你按官方文档要求传了,在这里依然丢失了。
所以得自己传进去,也就是在sendSms的参数里加一行appId: clientInfo.appId
到这里算是比较容易想到的,但当你这样 appId: clientInfo.appId传进去,发现问题依然在,肯定就跑去找其他原因了。
但, uniCloud.sendSms这个源码看不到,找遍了其他地方又找不到原因,花了大量时间后,不得不回到这里来重新思考,
最后是这把 appId: clientInfo.appId 改为 appid: clientInfo.appId ,发现终于成功了,是该喜还是什么别的表情?
一个大写I改成小写i,花了整整一天!
【问题最终解决方式】
const clientInfo = this.getUniversalClientInfo()
await uniCloud.sendSms({
appid: clientInfo.appId, //注意 sendSms的参数名 appid 必须小写 !就是这个小写折腾了我整整1天!!
smsKey: smsConfig.smsKey,
smsSecret: smsConfig.smsSecret,
phone: mobile,
templateId,
data: {
name: smsConfig.name,
code,
action,
expMinute: '' + Math.round(codeExpiresIn / 60)
}
})
基于vue3.5+deepseek-v3.2+vite7+arco搭建网页版ai对话系统
vite7-web-deepseek:基于vue3.5+vite7.2+arco-design+markdown+hljs+openai调用deepseek-v3.2聊天大模型。支持暗黑+浅色主题、深度思考、代码高亮、复制代码、katex公式、mermaid图表等功能。
使用技术
- 前端框架:vite^7.2.4+vue^3.5.24+vue-router^4.6.4
- ai大模型:DeepSeek-R1 + OpenAI
- 组件库:arco-design^2.57.0 (字节桌面端组件库)
- 状态管理:pinia^3.0.4
- 本地存储:pinia-plugin-persistedstate^4.7.1
- 高亮插件:highlight.js^11.11.1
- markdown插件:markdown-it
- katex公式:@mdit/plugin-katex^0.24.1
如上图:vue3-deepseek-webai支持latex数学公式、mermaid图表渲染。
项目框架结构
> deepseek-vue3-webai网页版ai对话项目已经发布到我的原创作品集,欢迎下载使用哈!
> 2026原创Vue3+DeepSeek+ArcoDesign网页版AI流式对话模板
想要了解更多项目详细介绍,可以看看下面这篇文章。
Vite7+DeepSeek网页版Ai助手|vue3+arco网页web流式生成ai聊天问答系统
往期推荐
原创uniapp+vue3+deepseek+uv-ui跨端实战仿deepseek/豆包流式ai聊天对话助手。
vite7+deepseek流式ai模板|vue3.5+deepseek3.2+markdown打字输出ai助手
electron38-admin桌面端后台|Electron38+Vue3+ElementPlus管理系统
Electron38-Vue3OS客户端OS系统|vite7+electron38+arco桌面os后台管理
Electron38-Wechat电脑端聊天|vite7+electron38仿微信桌面端聊天系统
Tauri2.9+Vue3桌面版OS系统|vite7+tauri2+arcoDesign电脑端os后台模板
Tauri2.8+Vue3聊天系统|vite7+tauri2+element-plus客户端仿微信聊天程序
Tauri2-Vite7Admin客户端管理后台|tauri2.9+vue3+element-plus后台系统
最新版uniapp+vue3+uv-ui跨三端短视频+直播+聊天【H5+小程序+App端】
最新版uni-app+vue3+uv-ui跨三端仿微信app聊天应用【h5+小程序+app端】
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聊天界面|朋友圈
Electron35-DeepSeek桌面端AI系统|vue3.5+electron+arco客户端ai模板
vite7-web-deepseek:基于vue3.5+vite7.2+arco-design+markdown+hljs+openai调用deepseek-v3.2聊天大模型。支持暗黑+浅色主题、深度思考、代码高亮、复制代码、katex公式、mermaid图表等功能。
使用技术
- 前端框架:vite^7.2.4+vue^3.5.24+vue-router^4.6.4
- ai大模型:DeepSeek-R1 + OpenAI
- 组件库:arco-design^2.57.0 (字节桌面端组件库)
- 状态管理:pinia^3.0.4
- 本地存储:pinia-plugin-persistedstate^4.7.1
- 高亮插件:highlight.js^11.11.1
- markdown插件:markdown-it
- katex公式:@mdit/plugin-katex^0.24.1
如上图:vue3-deepseek-webai支持latex数学公式、mermaid图表渲染。
项目框架结构
> deepseek-vue3-webai网页版ai对话项目已经发布到我的原创作品集,欢迎下载使用哈!
> 2026原创Vue3+DeepSeek+ArcoDesign网页版AI流式对话模板
想要了解更多项目详细介绍,可以看看下面这篇文章。
Vite7+DeepSeek网页版Ai助手|vue3+arco网页web流式生成ai聊天问答系统
往期推荐
原创uniapp+vue3+deepseek+uv-ui跨端实战仿deepseek/豆包流式ai聊天对话助手。
vite7+deepseek流式ai模板|vue3.5+deepseek3.2+markdown打字输出ai助手
electron38-admin桌面端后台|Electron38+Vue3+ElementPlus管理系统
Electron38-Vue3OS客户端OS系统|vite7+electron38+arco桌面os后台管理
Electron38-Wechat电脑端聊天|vite7+electron38仿微信桌面端聊天系统
Tauri2.9+Vue3桌面版OS系统|vite7+tauri2+arcoDesign电脑端os后台模板
Tauri2.8+Vue3聊天系统|vite7+tauri2+element-plus客户端仿微信聊天程序
Tauri2-Vite7Admin客户端管理后台|tauri2.9+vue3+element-plus后台系统
最新版uniapp+vue3+uv-ui跨三端短视频+直播+聊天【H5+小程序+App端】
最新版uni-app+vue3+uv-ui跨三端仿微信app聊天应用【h5+小程序+app端】
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聊天界面|朋友圈
Electron35-DeepSeek桌面端AI系统|vue3.5+electron+arco客户端ai模板
sh: uni: command not found
uni-app 项目
遇到了 "sh: uni: command not found" 的错误。这通常与 uni-app 开发环境配置有关。
使用了 @dcloudio/uni-app 和相关依赖。uni 命令是 uni-app CLI 工具的一部分,但看起来没有正确安装或配置。
项目使用 pnpm 作为包管理器(有 pnpm-lock.yaml 文件),并且没有看到 node_modules 目录。这很可能是导致 uni 命令找不到的原因。
- 检查依赖是否已安装:
ls -la node_modules 2>/dev/null || echo "node_modules not found" - 全局安装 pnpm,然后安装项目依赖。
npm install -g pnpm - 因为在 uni-app 项目中,uni 命令通常是通过 npm scripts 运行的,而不是全局命令。让我检查 node_modules 中的 .bin 目录,并尝试通过 npx 或 pnpm 运行:
ls node_modules/.bin/ | grep uni - 检查 .bin 目录中的所有可执行文件:
ls node_modules/.bin/ - 看到 uni 命令确实存在于 node_modules/.bin/ 目录中。在 uni-app 项目中,正确的使用方式是通过 npm scripts 或者 npx/pnpm 来运行。让我测试一下:
pnpm run dev成功解决了 "sh: uni: command not found" 错误!问题的原因是项目依赖没有正确安装。
解决步骤:
安装了 pnpm 包管理器(全局安装)
使用 pnpm 安装了项目的所有依赖(共 1137 个包)
确认 uni-app CLI 工具已正确安装
当前状态:
✅ pnpm 10.27.0 已安装
✅ 项目依赖已全部安装完成
✅ uni-app 开发环境已配置完成
✅ 项目可以正常启动(pnpm run dev 成功运行)
使用说明:
在 uni-app 项目中,uni 命令不是全局命令,而是通过 npm scripts 调用的。你可以使用以下命令:
pnpm run dev - 启动开发模式(微信小程序)
pnpm run start - 同 dev 命令
pnpm run build - 构建生产版本
npx uni -p mp-weixin - 直接使用 uni 命令
项目现在正在运行中,编译已完成并进入监听模式。你可以打开微信开发者工具,导入 dist/dev/mp-weixin 目录来查看运行效果。
uni-app 项目
遇到了 "sh: uni: command not found" 的错误。这通常与 uni-app 开发环境配置有关。
使用了 @dcloudio/uni-app 和相关依赖。uni 命令是 uni-app CLI 工具的一部分,但看起来没有正确安装或配置。
项目使用 pnpm 作为包管理器(有 pnpm-lock.yaml 文件),并且没有看到 node_modules 目录。这很可能是导致 uni 命令找不到的原因。
- 检查依赖是否已安装:
ls -la node_modules 2>/dev/null || echo "node_modules not found" - 全局安装 pnpm,然后安装项目依赖。
npm install -g pnpm - 因为在 uni-app 项目中,uni 命令通常是通过 npm scripts 运行的,而不是全局命令。让我检查 node_modules 中的 .bin 目录,并尝试通过 npx 或 pnpm 运行:
ls node_modules/.bin/ | grep uni - 检查 .bin 目录中的所有可执行文件:
ls node_modules/.bin/ - 看到 uni 命令确实存在于 node_modules/.bin/ 目录中。在 uni-app 项目中,正确的使用方式是通过 npm scripts 或者 npx/pnpm 来运行。让我测试一下:
pnpm run dev成功解决了 "sh: uni: command not found" 错误!问题的原因是项目依赖没有正确安装。
解决步骤:
安装了 pnpm 包管理器(全局安装)
使用 pnpm 安装了项目的所有依赖(共 1137 个包)
确认 uni-app CLI 工具已正确安装
当前状态:
✅ pnpm 10.27.0 已安装
✅ 项目依赖已全部安装完成
✅ uni-app 开发环境已配置完成
✅ 项目可以正常启动(pnpm run dev 成功运行)
使用说明:
在 uni-app 项目中,uni 命令不是全局命令,而是通过 npm scripts 调用的。你可以使用以下命令:
pnpm run dev - 启动开发模式(微信小程序)
pnpm run start - 同 dev 命令
pnpm run build - 构建生产版本
npx uni -p mp-weixin - 直接使用 uni 命令
项目现在正在运行中,编译已完成并进入监听模式。你可以打开微信开发者工具,导入 dist/dev/mp-weixin 目录来查看运行效果。
鸿蒙应用商城搜索安装亿企标讯,跪求!!!可私信我付费
我们参加了华为鸿蒙的激励计划,可是下载量一直上不去,希望看到帖子的大大们帮帮忙
我们参加了华为鸿蒙的激励计划,可是下载量一直上不去,希望看到帖子的大大们帮帮忙
hbuilderx打包报证书过期,解决方案:使用香蕉云编重新生成
打包的时候,报遇到The certificate is expired这个错误,字面意思其实很明了,就是证书过期了。
管理证书的组好的方法,最好是亲自去苹果开发者开发者中心生成,这样可以充分了解ios证书过期的生命周期,也可以提前创建和管理证书,这里我推荐使用香蕉云编+苹果开发者中心来生成。
主要是在苹果开发者中心,删除旧的证书和profile文件,然后重新生成。
而因为在苹果开发者中心,生成证书的时候,由于需要提供csr这种文件,生成完证书后还需要导出成p12格式的私钥证书,因此需要香蕉云编作为辅助功能来做配合。工具:
https://www.yunedit.com/createcert
直接使用这个工具来生成即可,傻瓜式的可视化工具,假如流程有不懂,可以直接看工具里生成证书界面的教程。
打包的时候,报遇到The certificate is expired这个错误,字面意思其实很明了,就是证书过期了。
管理证书的组好的方法,最好是亲自去苹果开发者开发者中心生成,这样可以充分了解ios证书过期的生命周期,也可以提前创建和管理证书,这里我推荐使用香蕉云编+苹果开发者中心来生成。
主要是在苹果开发者中心,删除旧的证书和profile文件,然后重新生成。
而因为在苹果开发者中心,生成证书的时候,由于需要提供csr这种文件,生成完证书后还需要导出成p12格式的私钥证书,因此需要香蕉云编作为辅助功能来做配合。工具:
https://www.yunedit.com/createcert
直接使用这个工具来生成即可,傻瓜式的可视化工具,假如流程有不懂,可以直接看工具里生成证书界面的教程。
收起阅读 »分享2100+赛博朋克图标,持续更新中
🎨 纯正赛博朋克风:霓虹光感、高对比度、科技质感。
📦 海量资源:内置 2100+ 个精心设计的图标,覆盖几乎所有常用场景。
⚡️ 高性能渲染:采用 WebP 格式雪碧图(Sprite Sheet)技术,相比单图加载大幅减少 HTTP 请求,兼顾显示效果与加载性能。
🔧 便捷组件化:基于 uni-app uni_modules 规范,只需一行代码即可使用。
📏 灵活缩放:支持自定义尺寸(Size),组件会自动进行无损等比缩放。
人脸识别 活体检测 UTS API插件,支持iOS Android,支持uniapp和uniapp x
FaceAISDK-UTS API 插件
1:1人脸识别,活体检测UTS API插件,支持iOS,Android,支持uniappX和uniapp。
人脸识别活体检测都是设备端侧AI能力,无需后台API服务可完全离线运行,高性能无依赖
感谢大家收藏与点赞,如有问题可描述你的使用场景说明发送邮件到FaceAISDK.Service@gmial.com
或提issues 到本插件GitHub托管工程:https://github.com/FaceAISDK/FaceAISDK_uniapp_UTS
快速体验完整人脸识别功能可以下载Demo App:https://www.pgyer.com/app/qrcode/faceVerify
1:N 人脸搜索识别插件独立出来了:https://ext.dcloud.net.cn/plugin?id=26467
使用方法
如果你是第一次运行UTS插件工程/引入UTS API插件,你应先安装官方说明配置好基础环境 基础环境
-
- 按照文档 -》把插件引入项目(即 import {faceVerify,livenessVerify,getFaceFeature等方法} from "@/uni_modules/FaceAISDK-Core";)
-
- 运行-》运行到手机或模拟器 -》制作自定义调试基座 -》打包 等基座制作完成
- 运行-》运行到手机或模拟器 -》制作自定义调试基座 -》打包 等基座制作完成
-
- 运行 -》 运行到手机或模拟器-》运行到iOS/Android基座-》选择使用自定义基座运行-》选择手机-》运行

请手动勾选对正确的运行方式,很多朋友辛苦打好了自定义基座包,结果运行的时候没选对导致运行不了
若之前手机安装过基座需要先卸载之前的基座,iOS 可能会提示你安装好后杀死应进程后重新启动(可以点击几个其他应用加快彻底杀死重启)
注:只支持真机调试,需要用到硬件摄像头 - 运行 -》 运行到手机或模拟器-》运行到iOS/Android基座-》选择使用自定义基座运行-》选择手机-》运行
常见错误与解决方法
-
- iOS 自定义基座首次运行找不到iOS原生SDK FaceAISDK_Core
Analyzing dependencies CocoaPods could not find compatible versions for pod "FaceAISDK_Core": in Podfile: FaceAISDK_Core (= 2026.01.04) None of your spec sources contain a spec satisfying the dependency: `FaceAISDK_Core (= 2025.12.31)`.基本重新运行就可以了,在线打包机器有时候会无法科学上网有问题无法访问GitHub
- iOS 自定义基座首次运行找不到iOS原生SDK FaceAISDK_Core
-
- iOS 基座安装到手机后很久都是白屏/黑屏幕
控制台输出 项目 [FaceAI_API_Plugin] 已启动。请点击手机/模拟器的运行基座App(uni-app x)查看效果。 如应用未更新,请在手机上杀掉基座进程重启根据提示杀掉基座进程重启,然后点击启动2个其他App后再重新启动基本就没问题了,本情况只会在第一次安装新基座出现
- iOS 基座安装到手机后很久都是白屏/黑屏幕
-
- 炫彩活体提示光线太亮导致失败
这个基本上只能规避强光环境了,或引导用户用手遮住强烈光线,让手机彩色光能照到脸部
- 炫彩活体提示光线太亮导致失败
-
- 改动原生swift/kotlin 代码导致基座不能正常运行
只能重新制作自定义调试基座,UTS API插件使用方如果不需要修改插件底层实现尽量不用改原生代码
- 改动原生swift/kotlin 代码导致基座不能正常运行
人脸识别,活体检测状态码
人脸识别,活体检测状态码含义
public static let DEFAULT = 0 // 0 初始化状态,流程没有开始
public static let VERIFY_SUCCESS = 1 // 1 人脸识别对比成功大于设置的threshold
public static let VERIFY_FAILED = 2 // 2 人脸识别对比识别小于设置的threshold
public static let MOTION_LIVENESS_SUCCESS = 3 // 3 动作活体检测成功(基本不用,还有后续动作)
public static let MOTION_LIVENESS_TIMEOUT = 4 // 4 动作活体超时
public static let NO_FACE_MULTI = 5 // 5 多次没有检测到人脸
public static let NO_FACE_FEATURE = 6 // 6 没有对应的人脸特征值
public static let COLOR_LIVENESS_SUCCESS = 7 // 7 炫彩活体成功
public static let COLOR_LIVENESS_FAILED = 8 // 8 炫彩活体失败
public static let COLOR_LIVENESS_LIGHT_TOO_HIGH = 9 // 9 炫彩活体失败,光线亮度过高
public static let ALL_LIVENESS_SUCCESS = 10 // 10 所有的活体检测完成(包括动作和炫彩)
Copyright © 2026 FaceAISDK. All rights reserved
FaceAISDK-UTS API 插件
1:1人脸识别,活体检测UTS API插件,支持iOS,Android,支持uniappX和uniapp。
人脸识别活体检测都是设备端侧AI能力,无需后台API服务可完全离线运行,高性能无依赖
感谢大家收藏与点赞,如有问题可描述你的使用场景说明发送邮件到FaceAISDK.Service@gmial.com
或提issues 到本插件GitHub托管工程:https://github.com/FaceAISDK/FaceAISDK_uniapp_UTS
快速体验完整人脸识别功能可以下载Demo App:https://www.pgyer.com/app/qrcode/faceVerify
1:N 人脸搜索识别插件独立出来了:https://ext.dcloud.net.cn/plugin?id=26467
使用方法
如果你是第一次运行UTS插件工程/引入UTS API插件,你应先安装官方说明配置好基础环境 基础环境
-
- 按照文档 -》把插件引入项目(即 import {faceVerify,livenessVerify,getFaceFeature等方法} from "@/uni_modules/FaceAISDK-Core";)
-
- 运行-》运行到手机或模拟器 -》制作自定义调试基座 -》打包 等基座制作完成
- 运行-》运行到手机或模拟器 -》制作自定义调试基座 -》打包 等基座制作完成
-
- 运行 -》 运行到手机或模拟器-》运行到iOS/Android基座-》选择使用自定义基座运行-》选择手机-》运行

请手动勾选对正确的运行方式,很多朋友辛苦打好了自定义基座包,结果运行的时候没选对导致运行不了
若之前手机安装过基座需要先卸载之前的基座,iOS 可能会提示你安装好后杀死应进程后重新启动(可以点击几个其他应用加快彻底杀死重启)
注:只支持真机调试,需要用到硬件摄像头 - 运行 -》 运行到手机或模拟器-》运行到iOS/Android基座-》选择使用自定义基座运行-》选择手机-》运行
常见错误与解决方法
-
- iOS 自定义基座首次运行找不到iOS原生SDK FaceAISDK_Core
Analyzing dependencies CocoaPods could not find compatible versions for pod "FaceAISDK_Core": in Podfile: FaceAISDK_Core (= 2026.01.04) None of your spec sources contain a spec satisfying the dependency: `FaceAISDK_Core (= 2025.12.31)`.基本重新运行就可以了,在线打包机器有时候会无法科学上网有问题无法访问GitHub
- iOS 自定义基座首次运行找不到iOS原生SDK FaceAISDK_Core
-
- iOS 基座安装到手机后很久都是白屏/黑屏幕
控制台输出 项目 [FaceAI_API_Plugin] 已启动。请点击手机/模拟器的运行基座App(uni-app x)查看效果。 如应用未更新,请在手机上杀掉基座进程重启根据提示杀掉基座进程重启,然后点击启动2个其他App后再重新启动基本就没问题了,本情况只会在第一次安装新基座出现
- iOS 基座安装到手机后很久都是白屏/黑屏幕
-
- 炫彩活体提示光线太亮导致失败
这个基本上只能规避强光环境了,或引导用户用手遮住强烈光线,让手机彩色光能照到脸部
- 炫彩活体提示光线太亮导致失败
-
- 改动原生swift/kotlin 代码导致基座不能正常运行
只能重新制作自定义调试基座,UTS API插件使用方如果不需要修改插件底层实现尽量不用改原生代码
- 改动原生swift/kotlin 代码导致基座不能正常运行
人脸识别,活体检测状态码
人脸识别,活体检测状态码含义
public static let DEFAULT = 0 // 0 初始化状态,流程没有开始
public static let VERIFY_SUCCESS = 1 // 1 人脸识别对比成功大于设置的threshold
public static let VERIFY_FAILED = 2 // 2 人脸识别对比识别小于设置的threshold
public static let MOTION_LIVENESS_SUCCESS = 3 // 3 动作活体检测成功(基本不用,还有后续动作)
public static let MOTION_LIVENESS_TIMEOUT = 4 // 4 动作活体超时
public static let NO_FACE_MULTI = 5 // 5 多次没有检测到人脸
public static let NO_FACE_FEATURE = 6 // 6 没有对应的人脸特征值
public static let COLOR_LIVENESS_SUCCESS = 7 // 7 炫彩活体成功
public static let COLOR_LIVENESS_FAILED = 8 // 8 炫彩活体失败
public static let COLOR_LIVENESS_LIGHT_TOO_HIGH = 9 // 9 炫彩活体失败,光线亮度过高
public static let ALL_LIVENESS_SUCCESS = 10 // 10 所有的活体检测完成(包括动作和炫彩)
Copyright © 2026 FaceAISDK. All rights reserved
收起阅读 »unicloud配置自定义域名的详细步骤
unicloud配置自定义域名的详细步骤
经常看到大家在问答中心去问,绑定时候的一些问题,有空就整理了下详细步骤,可以参考下
我这块以阿里云为例
1.购买注册认证域名
- 创建并认证信息模板:创建并提交包含域名持有者身份资料的信息模板以供审核。
- 将模板关联至域名:将审核通过的信息模板关联到一个或多个域名。
- 查询域名实名认证状态:如果状态显示为正常,表示域名已成功完成实名认证,可进行备案和解析配置。
当信息模板状态显示为“模板实名成功”后,须将其关联至域名,才能完成整个认证流程。
-
场景1:为新注册的域名认证
在域名购买的订单确认页面,选择已实名成功的模板即可。支付后,系统会自动为您提交认证。
-
场景2:为已有的域名认证
- 域名列表页找到未实名认证的域名。
- 单击目标域名,在\域名持有者实名认证\ > **快速认证****页,选择已通过认证的模板进行关联。
2.备案
- 点击阿里云右上角的备案
- 点击新增/接入其他服务后,点击自助备案即可
3.不管是企业还是个人,就按照模板填就可以了,完成就下一步,一直下一步就ok了,就不一 一列了,然后等管局审核就ok了,完成后就是图二了(如果需要备案码的话,如果是支付宝云,满200的话,会赠送两个,再或者也可以从阿里云直接购买备案码、或许咸鱼)
3.绑定域名
1.找到unicloud的控制台,我这块是用函数/对象 右上角的域名绑定演示的,点击域名绑定
2.在公网权威解析中,点击解析设置,然后添加记录
4.证书解析
1.阿里云直接搜索数字证书管理服务(原SSL证书)找到ssl证书
2.点击立即购买后,如果想要免费的话,选择个人测试证书,当然如果嫌麻烦,可以购买个人测试证书pro
- 个人测试证书(免费版):每年20个证书,每个证书3个月有效期。
- 个人测试证书(pro):需要付费68块大洋购买,有效期为一年。
3.创建证书
4.成功后返回到列表,稍等一会,状态会变成已签发
5.点击更多,然后找到nginx项,点击下载
6.在unicloud的证书和秘钥处,填入下载下来的内容即可
unicloud配置自定义域名的详细步骤
经常看到大家在问答中心去问,绑定时候的一些问题,有空就整理了下详细步骤,可以参考下
我这块以阿里云为例
1.购买注册认证域名
- 创建并认证信息模板:创建并提交包含域名持有者身份资料的信息模板以供审核。
- 将模板关联至域名:将审核通过的信息模板关联到一个或多个域名。
- 查询域名实名认证状态:如果状态显示为正常,表示域名已成功完成实名认证,可进行备案和解析配置。
当信息模板状态显示为“模板实名成功”后,须将其关联至域名,才能完成整个认证流程。
-
场景1:为新注册的域名认证
在域名购买的订单确认页面,选择已实名成功的模板即可。支付后,系统会自动为您提交认证。
-
场景2:为已有的域名认证
- 域名列表页找到未实名认证的域名。
- 单击目标域名,在\域名持有者实名认证\ > **快速认证****页,选择已通过认证的模板进行关联。
2.备案
- 点击阿里云右上角的备案
- 点击新增/接入其他服务后,点击自助备案即可
3.不管是企业还是个人,就按照模板填就可以了,完成就下一步,一直下一步就ok了,就不一 一列了,然后等管局审核就ok了,完成后就是图二了(如果需要备案码的话,如果是支付宝云,满200的话,会赠送两个,再或者也可以从阿里云直接购买备案码、或许咸鱼)
3.绑定域名
1.找到unicloud的控制台,我这块是用函数/对象 右上角的域名绑定演示的,点击域名绑定
2.在公网权威解析中,点击解析设置,然后添加记录
4.证书解析
1.阿里云直接搜索数字证书管理服务(原SSL证书)找到ssl证书
2.点击立即购买后,如果想要免费的话,选择个人测试证书,当然如果嫌麻烦,可以购买个人测试证书pro
- 个人测试证书(免费版):每年20个证书,每个证书3个月有效期。
- 个人测试证书(pro):需要付费68块大洋购买,有效期为一年。
3.创建证书
4.成功后返回到列表,稍等一会,状态会变成已签发
5.点击更多,然后找到nginx项,点击下载
6.在unicloud的证书和秘钥处,填入下载下来的内容即可
收起阅读 »





































