HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

文档优化 - 示例图先行

uniapp 教程 文档

作为一个初次接触 uniapp 的用户,看了 uniapp 组件以及 api 的文档,发现有一个迫切需要优化的地方。

我建议应该优先列出组件或者 api 的示例图片或动图,使得用户第一时间直观的看出其效果。各种属性的作用,也最好使用图片来解释。至于具体的属性参数等,应该在最后列出。

总之,建议示例图片先行,这一点对于新用户非常重要。

继续阅读 »

作为一个初次接触 uniapp 的用户,看了 uniapp 组件以及 api 的文档,发现有一个迫切需要优化的地方。

我建议应该优先列出组件或者 api 的示例图片或动图,使得用户第一时间直观的看出其效果。各种属性的作用,也最好使用图片来解释。至于具体的属性参数等,应该在最后列出。

总之,建议示例图片先行,这一点对于新用户非常重要。

收起阅读 »

uniCloud阿里云服务空间数据库系统架构升级通知

uniCloud

尊敬的uniCloud开发者,您好!

uniCloud阿里云服务空间于2025年4月12日对数据库进行系统架构升级,升级期间影响新建服务空间的数据表创建,其他功能不受影响,预计4月12日下午14点恢复,感谢您的支持与理解。

尊敬的uniCloud开发者,您好!

uniCloud阿里云服务空间于2025年4月12日对数据库进行系统架构升级,升级期间影响新建服务空间的数据表创建,其他功能不受影响,预计4月12日下午14点恢复,感谢您的支持与理解。

uni-app h5项目在linux系统运行,打包

Linux HBuilderX CLI

微信有了linux,更换ubunut24.04.1系统进行日常工作,发现hbuilderx可视化并未推出,只能在cli模式下进行开发。手上有个旧版uniapp的h5项目,搜了官方文档,没有找到相关运行的文档,记录分享给有需要的朋友,如有不当,还请指出。
cli 文档地址:https://hx.dcloud.net.cn/cli/README,下载地址:https://ask.dcloud.net.cn/article/41469

开发

1.启动xbuilder cli open
2.登录账号 cli user login --username <用户名> --password <密码>
3.导入项目。 cli project open --path 项目路径

  1. 进入HBuilderX/plugins/node 查看node版本,运行nvm use node版本号,使用对应的node版本号。
  2. 进入到 HBuilderX/plugins/uniapp-cli 目录,运行UNI_INPUT_DIR=填写项目路径UNI_OUTPUT_DIR=填写项目路径/unpackage/dist/dev/h5 UNI_PLATFORM=h5 NODE_ENV=development node bin/uniapp-cli.js

打包

cli publish --platform h5 --project 项目名称

继续阅读 »

微信有了linux,更换ubunut24.04.1系统进行日常工作,发现hbuilderx可视化并未推出,只能在cli模式下进行开发。手上有个旧版uniapp的h5项目,搜了官方文档,没有找到相关运行的文档,记录分享给有需要的朋友,如有不当,还请指出。
cli 文档地址:https://hx.dcloud.net.cn/cli/README,下载地址:https://ask.dcloud.net.cn/article/41469

开发

1.启动xbuilder cli open
2.登录账号 cli user login --username <用户名> --password <密码>
3.导入项目。 cli project open --path 项目路径

  1. 进入HBuilderX/plugins/node 查看node版本,运行nvm use node版本号,使用对应的node版本号。
  2. 进入到 HBuilderX/plugins/uniapp-cli 目录,运行UNI_INPUT_DIR=填写项目路径UNI_OUTPUT_DIR=填写项目路径/unpackage/dist/dev/h5 UNI_PLATFORM=h5 NODE_ENV=development node bin/uniapp-cli.js

打包

cli publish --platform h5 --project 项目名称

收起阅读 »

iPhone相册导出到电脑的完整指南

iOS

'''# iPhone相册导出到电脑的完整指南

本文介绍通过数据线连接实现iPhone照片视频传输到电脑的标准操作方法,适用于需要备份移动设备影像资料的用户。

环境准备

  1. 使用原装Lightning或USB-C数据线连接设备与电脑
  2. 需在电脑端安装设备管理工具(如克魔助手)
  3. 首次连接需在iPhone上完成设备信任验证

操作流程

设备连接与识别

  1. 启动设备管理工具主程序
  2. 保持iPhone屏幕常亮直至建立完整连接

文件系统访问

  1. 在工具界面左侧功能栏选择文件管理模块
  2. 访问用户数据存储目录

媒体文件定位

  1. 在文件浏览区打开DCIM系统文件夹
  2. 查看按日期排序的子文件夹结构

数据选择与导出

  1. 通过缩略图预览功能确认目标文件
  2. 支持多选操作(Ctrl/Command + 点击)

本地存储设置

  1. 使用导出功能选择计算机存储路径
  2. 确认执行批量传输任务

操作建议

  1. 建议分批次传输超过500个文件的情况
  2. 避免在传输过程中操作设备锁屏键
  3. 推荐使用USB 3.0及以上规格接口
  4. Windows系统用户需注意HEIC格式兼容性问题

常见疑问

Q: 无法查看系统文件夹内容?
A: 请检查设备授权状态,或尝试重启管理工具。

Q: 批量传输效率优化建议?
A: 可优先传输体积较小的照片文件,视频文件建议单独传输。

Q: 文件格式兼容性如何处理?
A: 推荐使用系统自带相册应用进行格式转换,或安装通用解码组件。

通过规范的设备管理操作,可有效实现移动端影像资料的数字归档。建议定期进行重要数据备份,以保障数字资产安全。'''

继续阅读 »

'''# iPhone相册导出到电脑的完整指南

本文介绍通过数据线连接实现iPhone照片视频传输到电脑的标准操作方法,适用于需要备份移动设备影像资料的用户。

环境准备

  1. 使用原装Lightning或USB-C数据线连接设备与电脑
  2. 需在电脑端安装设备管理工具(如克魔助手)
  3. 首次连接需在iPhone上完成设备信任验证

操作流程

设备连接与识别

  1. 启动设备管理工具主程序
  2. 保持iPhone屏幕常亮直至建立完整连接

文件系统访问

  1. 在工具界面左侧功能栏选择文件管理模块
  2. 访问用户数据存储目录

媒体文件定位

  1. 在文件浏览区打开DCIM系统文件夹
  2. 查看按日期排序的子文件夹结构

数据选择与导出

  1. 通过缩略图预览功能确认目标文件
  2. 支持多选操作(Ctrl/Command + 点击)

本地存储设置

  1. 使用导出功能选择计算机存储路径
  2. 确认执行批量传输任务

操作建议

  1. 建议分批次传输超过500个文件的情况
  2. 避免在传输过程中操作设备锁屏键
  3. 推荐使用USB 3.0及以上规格接口
  4. Windows系统用户需注意HEIC格式兼容性问题

常见疑问

Q: 无法查看系统文件夹内容?
A: 请检查设备授权状态,或尝试重启管理工具。

Q: 批量传输效率优化建议?
A: 可优先传输体积较小的照片文件,视频文件建议单独传输。

Q: 文件格式兼容性如何处理?
A: 推荐使用系统自带相册应用进行格式转换,或安装通用解码组件。

通过规范的设备管理操作,可有效实现移动端影像资料的数字归档。建议定期进行重要数据备份,以保障数字资产安全。'''

收起阅读 »

希望增加多一些快捷方式

快捷键

增加IDEA的高亮词汇,按ctrl可以快速跳转到引用代码块等

增加IDEA的高亮词汇,按ctrl可以快速跳转到引用代码块等

关于uni-app X项目离线打包自定义基座不显示静态资源的解决方法

自定义基座 uni-app x 离线打包

targetSDK 34
在AndroidManifest.xml中先关闭调试:

<meta-data  
            android:name="DCLOUD_DEBUG"  
            android:value="false" />

点Run
在生成apk后再打开调试,选择:Build -> Generate App Bundles or APKs -> Generate APKs
这样生成的基座在HBuilder中就可以正常显示静态资源文件了

继续阅读 »

targetSDK 34
在AndroidManifest.xml中先关闭调试:

<meta-data  
            android:name="DCLOUD_DEBUG"  
            android:value="false" />

点Run
在生成apk后再打开调试,选择:Build -> Generate App Bundles or APKs -> Generate APKs
这样生成的基座在HBuilder中就可以正常显示静态资源文件了

收起阅读 »

24h在线的全栈老友,用十年经验做您的技术后盾,复杂问题简单化

外包 外包接单 Vue 高效的开发效率 uni_app PHP java

精通Java、PHP、Go、Vue、React、UniApp等技术栈,熟悉前后端分离开发、微服务架构、容器化部署等技术,拥有丰富的开发经验。
能够独立完成从项目的分析、设计、开发、测试、部署到维护与优化的全过程,能快速的对需求进行梳理并制定开发计划。
注重代码可维护性、可扩展性、性能优化等方面的工作。
如果您正在寻找一位高效、专业的开发者来完成您的项目,我非常愿意为您提供优质的服务,共同推动项目顺利进行。
如果您对我的技能与工作经验感兴趣,请通过微信联系我,我们可以进一步探讨您的具体项目需求,并且开展合作。
V:TombaughWechat

继续阅读 »

精通Java、PHP、Go、Vue、React、UniApp等技术栈,熟悉前后端分离开发、微服务架构、容器化部署等技术,拥有丰富的开发经验。
能够独立完成从项目的分析、设计、开发、测试、部署到维护与优化的全过程,能快速的对需求进行梳理并制定开发计划。
注重代码可维护性、可扩展性、性能优化等方面的工作。
如果您正在寻找一位高效、专业的开发者来完成您的项目,我非常愿意为您提供优质的服务,共同推动项目顺利进行。
如果您对我的技能与工作经验感兴趣,请通过微信联系我,我们可以进一步探讨您的具体项目需求,并且开展合作。
V:TombaughWechat

收起阅读 »

最近项目需要在app中导出pdf的功能

renderjs

哈哈,来来来,今天我得跟你说说 UniApp 这文档的事儿。你说说,这 renderjs 的文档,短得可怕,是不是怕我学会啊?这文档可真是看得我心里直发毛,我本来以为这是个学习资料,结果一打开,哎呀妈呀,竟然跟个“速成班”的讲义似的,咋就这么简洁呢?你说说,应该让人看完了能学会吧?这也太简单了!学这技术,没点“内容”,学个啥呀?

你看吧,首先就得跟大家说一下,renderjs,是吧,按理说,应该是让我们写页面的工具,特别适合那些要自定义渲染的同学。结果呢,打开文档,三句话两段代码就解决问题了。啊?这就完了?我本以为能多看点深奥的东西,像什么内部原理,性能优化,咋就这俩小段儿代码呢?这些人是怕我学得太快,怕我一下子就超越他们吗?这么短,是怕我学会么?怕我一看就能秒懂吗?

你看看,代码部分我都能背下来了,这可好,整个文档就跟我点了点头,告诉我:“差不多得了!”。是想让我自己再去摸索,还是你们觉得我真能秒懂?我倒是觉得,这不是真的怕我学会,而是他们自己也没太研究明白吧。

总之,这文档就跟速食面似的,三分钟搞定。咱们当学员的,自己也得补补课,不能就这么吃干饭了!这就跟给我送的“菜”一样,根本没味儿,得自己再调味儿,别的地方也得好好琢磨琢磨,不能轻易就得出结论,这 renderjs 是个宝还是个坑呢?

你说,UniApp啊,能不能不这么“抠”点?文档也得好好整整,做个“系统餐”好不好?

继续阅读 »

renderjs

哈哈,来来来,今天我得跟你说说 UniApp 这文档的事儿。你说说,这 renderjs 的文档,短得可怕,是不是怕我学会啊?这文档可真是看得我心里直发毛,我本来以为这是个学习资料,结果一打开,哎呀妈呀,竟然跟个“速成班”的讲义似的,咋就这么简洁呢?你说说,应该让人看完了能学会吧?这也太简单了!学这技术,没点“内容”,学个啥呀?

你看吧,首先就得跟大家说一下,renderjs,是吧,按理说,应该是让我们写页面的工具,特别适合那些要自定义渲染的同学。结果呢,打开文档,三句话两段代码就解决问题了。啊?这就完了?我本以为能多看点深奥的东西,像什么内部原理,性能优化,咋就这俩小段儿代码呢?这些人是怕我学得太快,怕我一下子就超越他们吗?这么短,是怕我学会么?怕我一看就能秒懂吗?

你看看,代码部分我都能背下来了,这可好,整个文档就跟我点了点头,告诉我:“差不多得了!”。是想让我自己再去摸索,还是你们觉得我真能秒懂?我倒是觉得,这不是真的怕我学会,而是他们自己也没太研究明白吧。

总之,这文档就跟速食面似的,三分钟搞定。咱们当学员的,自己也得补补课,不能就这么吃干饭了!这就跟给我送的“菜”一样,根本没味儿,得自己再调味儿,别的地方也得好好琢磨琢磨,不能轻易就得出结论,这 renderjs 是个宝还是个坑呢?

你说,UniApp啊,能不能不这么“抠”点?文档也得好好整整,做个“系统餐”好不好?

收起阅读 »

uniapp开发App,不用安装插件也可以做到可以使用svg图标

SVG

1:创建imgSvg.ts文件
2:如图一所示,在imgSvg.ts这个文件夹中添加你想使用的svg图标
3:如图二所示,使用你的svg图标

1:创建imgSvg.ts文件
2:如图一所示,在imgSvg.ts这个文件夹中添加你想使用的svg图标
3:如图二所示,使用你的svg图标

在vscode上如何实现自定义组件、uniapp的uni_modules组件、vue-i8n、uni对象的类型声明,以及uniapp项目出错时修复的方法

vscode uniapp

首先,我们先把tsconfig.json的"strict": true开启,然后下载好vue,后面还需要的下载后面再说,对了,在uniapp项目里会出现问题,本文的后面有修复方法,推荐先看
对了,import和export关键字在dts文件的顶层不能乱加,要加只能在作为一个模块或者一个模块拓展时才加,不然写的declare就不能全局生效了

// tsconfig.json  
{  
  "compilerOptions": {  
    "strict": true    //就是这个  
  },  
}  

自定义组件、uniapp的uni_modules组件的类型声明
我们需要下载三个依赖,分别是vite、@vitejs/plugin-vue、unplugin-vue-components,然后在vite.config.ts里写入以下代码

import { defineConfig } from 'vite'  
import vue from '@vitejs/plugin-vue'  
import Components from 'unplugin-vue-components/vite'  

export default defineConfig({  
  plugins: [  
    vue(),  
    Components({  
      // 你的 vue 文件所在目录  
      dirs: ['uni_modules','components'],   
      extensions: ['vue'],  
      deep: true, // 是否递归查找子目录  
      directoryAsNamespace: false,  
      dts: 'custom-types/components/index.d.ts', // 自动生成的类型声明文件  
    }),  
  ]  
}  
)

然后我们接着在package.json的scripts节点添加一下代码

"scripts": {  
        "dev": "vite dev"  
    }

然后我们在npm run dev一下,就会发现多了'custom-types/components/index.d.ts'这么一个组件类型声明文件
如此一来,自定义的组件和下载的uni_modules组件的类型就有了

vue-i8n的类型声明
vue-i18n的类型声明是指在模版的组件上添加上$t函数,并为$t函数的参数添加类型,让我们只要输入‘’单引号就跳出提示,这样就不用傻乎乎的写字符的键了。i18n的类型声明比较简单,只需要的创建好i18n.d.ts文件,再写入以下代码

import  "vue"  
import TypeI18n from "./en"   //这里是导入你的i18n配置文件,要把en.json复制一份过来并把后缀改成ts,export default 那个json对象  
declare module "vue" {  
  export declare  interface ComponentCustomProperties {  
   $t(key:keyof typeof TypeI18n):string;  
  }  
}

uni对象的类型声明
这里我们需要下载@dcloudio/types这个依赖,然后在tsconfig.json里添加以下代码即可

{  
  "compilerOptions": {  
       "typeRoots": [  
      "./node_modules/@dcloudio"  
    ]  
  },  
}

uniapp项目出错时修复的方法
在uniapp里,想使用vite.config.ts需要一个依赖@dcloudio/vite-plugin-uni,hx已经内置好了,只需要引用即可

这是之前文章错误的地方,不要这么做  
使用npm包管理器下载@dcloudio/vite-plugin-uni依赖之后,npm会提示其中有一些依赖太老旧已经被抛弃了等提示,我们可以运行一下命令修复依赖

最后把vite.config.ts改成以下代码

import { defineConfig } from 'vite';  
import uni from '@dcloudio/vite-plugin-uni';  
import Components from 'unplugin-vue-components/vite'    
export default defineConfig({  
    plugins: [uni(),  
        Components({    
      // 你的 vue 文件所在目录    
      dirs: ['uni_modules','components'],     
      extensions: ['vue'],    
      deep: true, // 是否递归查找子目录    
      directoryAsNamespace: false,    
      dts: 'custom-types/components/index.d.ts', // 自动生成的类型声明文件    
    }),   
    ],  
});

完毕

继续阅读 »

首先,我们先把tsconfig.json的"strict": true开启,然后下载好vue,后面还需要的下载后面再说,对了,在uniapp项目里会出现问题,本文的后面有修复方法,推荐先看
对了,import和export关键字在dts文件的顶层不能乱加,要加只能在作为一个模块或者一个模块拓展时才加,不然写的declare就不能全局生效了

// tsconfig.json  
{  
  "compilerOptions": {  
    "strict": true    //就是这个  
  },  
}  

自定义组件、uniapp的uni_modules组件的类型声明
我们需要下载三个依赖,分别是vite、@vitejs/plugin-vue、unplugin-vue-components,然后在vite.config.ts里写入以下代码

import { defineConfig } from 'vite'  
import vue from '@vitejs/plugin-vue'  
import Components from 'unplugin-vue-components/vite'  

export default defineConfig({  
  plugins: [  
    vue(),  
    Components({  
      // 你的 vue 文件所在目录  
      dirs: ['uni_modules','components'],   
      extensions: ['vue'],  
      deep: true, // 是否递归查找子目录  
      directoryAsNamespace: false,  
      dts: 'custom-types/components/index.d.ts', // 自动生成的类型声明文件  
    }),  
  ]  
}  
)

然后我们接着在package.json的scripts节点添加一下代码

"scripts": {  
        "dev": "vite dev"  
    }

然后我们在npm run dev一下,就会发现多了'custom-types/components/index.d.ts'这么一个组件类型声明文件
如此一来,自定义的组件和下载的uni_modules组件的类型就有了

vue-i8n的类型声明
vue-i18n的类型声明是指在模版的组件上添加上$t函数,并为$t函数的参数添加类型,让我们只要输入‘’单引号就跳出提示,这样就不用傻乎乎的写字符的键了。i18n的类型声明比较简单,只需要的创建好i18n.d.ts文件,再写入以下代码

import  "vue"  
import TypeI18n from "./en"   //这里是导入你的i18n配置文件,要把en.json复制一份过来并把后缀改成ts,export default 那个json对象  
declare module "vue" {  
  export declare  interface ComponentCustomProperties {  
   $t(key:keyof typeof TypeI18n):string;  
  }  
}

uni对象的类型声明
这里我们需要下载@dcloudio/types这个依赖,然后在tsconfig.json里添加以下代码即可

{  
  "compilerOptions": {  
       "typeRoots": [  
      "./node_modules/@dcloudio"  
    ]  
  },  
}

uniapp项目出错时修复的方法
在uniapp里,想使用vite.config.ts需要一个依赖@dcloudio/vite-plugin-uni,hx已经内置好了,只需要引用即可

这是之前文章错误的地方,不要这么做  
使用npm包管理器下载@dcloudio/vite-plugin-uni依赖之后,npm会提示其中有一些依赖太老旧已经被抛弃了等提示,我们可以运行一下命令修复依赖

最后把vite.config.ts改成以下代码

import { defineConfig } from 'vite';  
import uni from '@dcloudio/vite-plugin-uni';  
import Components from 'unplugin-vue-components/vite'    
export default defineConfig({  
    plugins: [uni(),  
        Components({    
      // 你的 vue 文件所在目录    
      dirs: ['uni_modules','components'],     
      extensions: ['vue'],    
      deep: true, // 是否递归查找子目录    
      directoryAsNamespace: false,    
      dts: 'custom-types/components/index.d.ts', // 自动生成的类型声明文件    
    }),   
    ],  
});

完毕

收起阅读 »

ios、android备案公钥、模数、MD5免费查询方法 苹果安卓备案查询

uniapp 教程

2023年8月后,现在上架的app都需要备案了,无论是新上架还是已上架的app都要求做备案

网上的教程要么就是要使用mac电脑去获取公钥,android则需要安装工具去获取公钥,实在是太麻烦了。

而且不同的备案平台,要求录入的公钥的格式还不一样,有的需要输入公钥16进制,有的需要输入公钥10进制。

分享一个视化工具,上传证书就可以获取app的公钥和MD5值,省去了很多时间,无需安装工具和使用mac电脑即可获取到公钥,而且这个工具的查询结果包含了各平台需要的公钥原文、公钥16进制和公钥10进制的值:

https://apk.xekctl.cn/

继续阅读 »

2023年8月后,现在上架的app都需要备案了,无论是新上架还是已上架的app都要求做备案

网上的教程要么就是要使用mac电脑去获取公钥,android则需要安装工具去获取公钥,实在是太麻烦了。

而且不同的备案平台,要求录入的公钥的格式还不一样,有的需要输入公钥16进制,有的需要输入公钥10进制。

分享一个视化工具,上传证书就可以获取app的公钥和MD5值,省去了很多时间,无需安装工具和使用mac电脑即可获取到公钥,而且这个工具的查询结果包含了各平台需要的公钥原文、公钥16进制和公钥10进制的值:

https://apk.xekctl.cn/

收起阅读 »