Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-uni-app-x-zh
提交
6cfdb8b8
U
unidocs-uni-app-x-zh
项目概览
DCloud
/
unidocs-uni-app-x-zh
通知
200
Star
3
Fork
46
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
13
列表
看板
标记
里程碑
合并请求
16
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-uni-app-x-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
13
Issue
13
列表
看板
标记
里程碑
合并请求
16
合并请求
16
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
6cfdb8b8
编写于
5月 10, 2025
作者:
W
wangan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
完善文档
上级
6fc5d221
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
80 addition
and
34 deletion
+80
-34
docs/app-harmony/README.md
docs/app-harmony/README.md
+3
-8
docs/component/sticky-header.md
docs/component/sticky-header.md
+2
-1
docs/native/README.md
docs/native/README.md
+1
-1
docs/project.md
docs/project.md
+66
-18
docs/readme.md
docs/readme.md
+8
-6
未找到文件。
docs/app-harmony/README.md
浏览文件 @
6cfdb8b8
...
...
@@ -56,18 +56,18 @@ uni-app x项目的unpackage目录下的app-harmony下有编译后的鸿蒙原生
ArkTS的内存垃圾回收和V8等不同,比较容易造成内存泄漏。可以通过deveco提供的工具来分析泄漏点。
## 开发注意
鸿蒙整体处于发展初期,能用,有坑,大部分坑有规避方案。但开发者应建议其领导、客户、质量部门降低期望,不能严格比照Android和iOS的验收标准要求鸿蒙。
-
鸿蒙编译工具会在编译本地库时给编译产物的目录加上一串hash值,但windows上最长的文件路径不能超过255个字符。如果开发者的项目路径字符串较长、uni_modules的目录名称较长,再加上鸿蒙deveco编译器加上的hash,就会触发windows文件路径长度限制,导致编译失败。所以windows上的uni-app x项目路径尽量要短,比如
`c:\dev\app1`
,
`uni_modules`
的目录名称也要短一些。
-
鸿蒙平台从4.63起支持摇树,可以根据代码使用情况来决定打包的模块。但仍然部分sdk需要在manifest的可视化界面配置sdk信息。模块列表详见
[
manifest文档
](
../collocation/manifest-harmony.md#modules
)
-
暂未发布小程序SDK
-
鸿蒙平台目前不支持横屏、不支持 rpx 根据窗口尺寸变化自动变化
-
鸿蒙自身的Bug还有不少,开发时需注意相关的组件、API文档说明。比如:
*
sticky-header组件实际无法吸顶,
[
华为issues地址
](
https://issuereporter.developer.huawei.com/detail/250220195912059/comment
)
。临时规避方案是通过嵌套滚动或持续修改位置实现吸顶。在hello uni-app x的模板里有示例。
*
rich-text的无法自动根据内容撑开高度、内部会自滚动且滚动条位置不对,
[
华为issues地址
](
https://issuereporter.developer.huawei.com/detail/250224172323045/comment
)
,导致加载联网内容时滚动表现难以控制。
[
详见rich-text注意事项
](
../component/rich-text.md#tips
)
*
animateTo 设置 transform rotate 有较多问题,
[
华为issues地址
](
https://issuereporter.developer.huawei.com/detail/250317210619077/comment
)
鸿蒙整体处于发展初期,能用,有坑,大部分坑有规避方案。但开发者应建议其领导、客户、质量部门降低期望,不能严格比照Android和iOS的验收标准要求鸿蒙。即便微信的鸿蒙版,功能、质量也比不过Android/iOS版。
-
使用 uni.loadFontFace 后需要更新设置字体内容才能使字体生效
-
鸿蒙官方文档中px是指物理像素,而在使用uni-app时px是指逻辑像素,这点在阅读鸿蒙官方文档时需要注意
-
鸿蒙平台 uts 插件内暂不支持使用uniCloud
-
在运行 HBuilderX 内置的 hello uni-app x 项目运行报错
`运行所需的权限没有签名授权`
,是因为演示项目使用到了需要审批的 ACL 权限。解决方案:搜索
`ohos.permission.READ_PASTEBOARD`
将其注释掉,此时项目可以正常运行,同时剪切板的 api 测试页面将不生效。
## 插件扩展
...
...
@@ -77,8 +77,3 @@ ArkTS的内存垃圾回收和V8等不同,比较容易造成内存泄漏。可
-
[
鸿蒙uts插件文档
](
../plugin/uts-for-harmony.md
)
-
[
uts插件混编文档
](
../plugin/uts-plugin-hybrid.md#harmonyos平台
)
-
[
uts标准模式组件文档
](
../plugin/uts-component-vue.md
)
注意:
-
鸿蒙平台 uts 插件内暂不支持使用uniCloud
以上限制仅针对uts插件,页面里的代码没有限制
docs/component/sticky-header.md
浏览文件 @
6cfdb8b8
...
...
@@ -34,7 +34,8 @@
+
sticky-header组件不支持css。仅支持padding属性控制子元素位置。其他排版需求要交给子元素实现
+
同时存在多sticky-header组件请使用sticky-section组件充当父容器控制吸顶业务
+
鸿蒙平台暂不支持sticky-header,需要等鸿蒙修复ListItemGroup组件frameNode不能添加header的Bug后方可支持
+
在API版本低于17的鸿蒙平台上,若想使用吸顶,不能使用本组件。可在滚动容器里自行监听滚动,设置某个区域的top为固定值来实现吸顶。可参考hello uni-app x的模板->
[
scroll-view自定义滚动吸顶示例
](
https://gitcode.net/dcloud/hello-uni-app-x/-/blob/alpha/pages/template/scroll-sticky/scroll-sticky.uvue
)
<!-- UTSCOMJSON.sticky-header.children -->
...
...
docs/native/README.md
浏览文件 @
6cfdb8b8
...
...
@@ -11,7 +11,7 @@
所以在原生应用中集成uni-app x原生SDK,更像是集成一个小程序SDK。
当然uni-app x的性能
是最好的,它不会像小程序那样缓慢,也比react native/weex/flutter等性能和
兼容性更好(评测
[
另见
](
../select.md
)
)
当然uni-app x的性能
足够好,它不会像小程序那样启动缓慢,也比react native/flutter等性能和原生UI
兼容性更好(评测
[
另见
](
../select.md
)
)
uni-app x原生SDK,给原生开发者提供了更多可能性:
1.
一个最高性能的跨平台框架,让开发效率、运行性能、开发成本这个原来的不可能三角变成可以兼得
...
...
docs/project.md
浏览文件 @
6cfdb8b8
# uni-app x项目
## 新建
在HBuilder3.9起,新建uni-app项目界面的底部有一个checkbox:uni-app x。勾选后会新建为uni-app x项目。
首先需下载最新版
[
HBuilder
](
https://www.dcloud.io/hbuilderx.html
)
在菜单文件>新建>项目中,选择新建uni-app项目。(或工具链左上角的新建快捷菜单,或者快捷键Ctrl+N)
可以选择空项目,也可以选择hello uni-app x示例项目,这个项目有几百个页面,演示了uni-app x的各种组件和API的用法。
注意这里区分uni-app和uni-app x项目,在该界面的底部有一个checkbox:uni-app x。
**勾选后**
会新建为uni-app x项目。
不要错选成uni-app!

uni-app x
不支持vue2,所以无法同时
勾选vue2。
uni-app x
只支持vue3,无法
勾选vue2。
uni-app x的项目,manifest.json中会多一个节点
`"uni-app-x" : {}`
。这是HBuilder识别项目类型的标记。如手动增删这个节点,需对项目点右键"重新识别项目类型"
```
json
...
...
@@ -32,8 +41,6 @@ uni-app x的项目结构与[uni-app老版的项目结构](https://uniapp.dcloud.
基于uts的插件,可以在uni-app x和uni-app上通用。
uni-app x的App平台也不支持微信小程序wxml组件。
<pre
v-pre=
""
data-lang=
""
>
<code
class=
"lang-"
style=
"padding:0"
>
┌─uniCloud 云空间目录,支付宝小程序云为uniCloud-alipay,阿里云为uniCloud-aliyun,腾讯云为uniCloud-tcb(详见
<a
href=
"https://doc.dcloud.net.cn/uniCloud/quickstart?structure&id=structure"
>
uniCloud
</a>
)
...
...
@@ -70,34 +77,75 @@ uni-app x的App平台也不支持微信小程序wxml组件。
UniApp上有应用级的方法和属性。
[
详见
](
./api/get-app.md
)
## App的运行和发行
## 运行
新建项目后,可以直接点顶部菜单或工具栏运行,选择要运行的目标平台。
在HBuilder中,有顶部菜单、toolbar运行按钮、快捷键三种运行入口。
1.
顶部运行菜单

2.
toolbar工具栏上的运行按钮

uni-app x的真机运行基座(playground),和 uni-app/5+App/wap2app 不同,是一个绿色圆形的U(之前是方型H),基座名称默认为
`uni-app x`
(之前叫HBuilder)。
toolbar的运行按钮点击后会展开一个菜单。这个菜单可配置,通过`自定义菜单`将不常用的运行项目折叠起来。
3.
快捷键
运行快捷键是【Ctrl+r】
弹出的菜单还支持键盘快捷选择:按回车可以选中菜单的第一项;windows下按数字可以快捷选中菜单项开头数字对应的菜单项。
如果不能看到相关菜单,那么HBuilder当前打开的文件可能不是uni-app x项目下的文件。
运行到不同平台,需要不同平台的运行环境,比如安装浏览器、安装小程序模拟器、安装手机模拟器或电脑端插入真机。
根据提示安装运行环境,并注意观察控制台的日志。
在控制台的右上角,点击红色虫子可以开启debug调试。详见左侧的运行和调试章节。
### 运行到App
uni-app x在运行到Android和iOS时,提供了真机运行基座(playground),该基座安装到手机后,可以把开发者编写代码同步到手机上运行在这个基座上。
并实现修改代码后热刷新,在手机上及时看到效果。
运行到鸿蒙时,没有基座概念,直接调用本地的deveco出包。当然也就不支持热刷新了。
Android和iOS上的基座有标准基座和自定义基座的概念。
和 uni-app/5+App/wap2app 的基座不同,uni-app x的标准基座是一个绿色圆形的U(之前是方型H),基座名称默认为
`uni-app x`
(之前叫HBuilder)。

-
uni-app x基座,只能运行uni-app x项目,包名是io.dcloud.uniappx
-
HBuilder基座,可以运行uni-app/5+App/wap2app。包名是io.dcloud.HBuilder
标准基座使用的图标、包名、证书以及配置的三方sdk的appkey等各种原生信息,都是DCloud的。
标准基座使用的图标、包名、证书以及配置的三方sdk的appkey等各种原生信息,都是DCloud的。
[
详见
](
./tutorial/app-playground.md
)
当需要使用自己的包名、证书、原生配置以及变更三方原生sdk时,需在打包界面勾选打包自定义基座,打包后的自定义基座会放置在项目的unpackage目录下,然后在运行项目时的界面中可以选择自定义基座来运行。
uni-app x运行时,控制台右上角可以选择开启原生日志。
uni-app x运行时,默认仅显示开发者代码和uni-app x框架的输出日志,在控制台右上角还可以选择开启原生日志。
### 运行到web
uni-app x运行到浏览器时,编译基于vite,其特点是按需编译。所以项目运行后很快能看到首页,但后续仍然在编译其他页面直到项目编译完成。
目前支持真机运行、从HBuilderX 4.0起支持uts插件的debug断点。目前iOS的uvue页面可以断点,Android还不支持uvue的断点debug
。
如果后续页面有报错,就会在控制台看到输出。即便这个页面并未打开
。
uni-app x App平台,不支持wgt热更新、不支持安心打包。下载到项目下的uts插件可打包含入。
## 发行
## web的运行和发行注意
选中要发行的项目,点顶部菜单发行(或者对项目点右键,或者快捷键Ctrl+U),选择要发行的目标平台。
uni-app x运行到浏览器时,编译基于vite,其特点是按需编译。所以项目运行后很快能看到首页,但点击二级页时有等待延迟,因为此时正在先编译后再渲染
。
所有平台的都支持本地发行,同时依赖本地安装的发布环境。在菜单或弹出界面上有相应的教程链接
。
这带来2个问题:
1.
运行时点击初次打开的二级页有等待过程。在一个运行的周期内,已编译过的页面再次进入时瞬间打开。
2.
运行后未点到页面由于不会被编译,其中隐藏的类型错误不可知,需在发行时查阅。
如果发布Android和iOS应用,HBuilder还额外提供了方便的云打包,免去安装和配置原生环境,直接出apk、ipa包。
[
详见
](
./tutorial/app-package.md
)
发行时会编译全部项目。因为运行时未必点全所有页面,所以发行时可能看到更多编译报错。另外发行后由于已编译过,打开二级页面时很快。
除了在菜单里点击发布,也可以通过HBuilderX的cli,实现持续集成和自动发布。
[
详见
](
https://hx.dcloud.net.cn/cli/README
)
发行后的文件如果部署uniCloud的前端网页托管,记得在uniCloud的web控制台点强制刷新。
如果你不希望直接发布成品应用,而希望发布成其他应用的一部分,那么
-
App平台:需参考
[
uni-app x 原生SDK文档
](
./native/README.md
)
,把uni-app x项目发布为kt、swift源码,集成到自己的原生项目中。
-
小程序平台:可发布为分包,成为其他小程序的一个分包。
[
详见
](
https://uniapp.dcloud.net.cn/hybrid.html
)
如果
有条件的话,可以在重新部署后用各地ip访问一遍,让文件同步到各地的cdn节点,这样当地用户第一次访问时就会更快
。
如果
你已经拥有了非uni-app x的成型应用,想要渐进式的引入uni-app x,那么上面的方案非常合适。可以用uni-app x开发部分页面,集成到原来的项目中
。
\ No newline at end of file
docs/readme.md
浏览文件 @
6cfdb8b8
...
...
@@ -6,7 +6,7 @@ uni-app x 是一个庞大的工程,它包括uts语言、uvue渲染引擎、uni
uts是一门类ts的、跨平台的、新语言。
uts在
iOS平台编译为swift、在Android平台编译为kotlin、在Web和小程序平台编译为js、在鸿蒙next平台上编译为ArkTS
。
uts在
Android平台编译为kotlin、在iOS平台编译为swift、在鸿蒙next平台上编译为ArkTS、在Web和小程序平台编译为js
。
在Android平台,uni-app x 的工程被整体编译为kotlin代码,本质上是换了vue写法的原生kotlin应用,在性能上与原生kotlin一致。
...
...
@@ -67,6 +67,7 @@ uvue是一套基于uts的、兼容vue语法的、跨平台的、原生渲染引
-
Android版于3.99上线
-
Web版于4.0上线
-
iOS版于4.11上线
-
微信小程序版于4.41上线
-
harmonyOS版于4.61上线
uvue渲染引擎包括uts版的vue框架(组件、数据绑定...)、跨平台基础ui、css引擎。
...
...
@@ -155,15 +156,17 @@ uvue在App端支持的css语法,是web的子集,类似于但优于nvue的css
也就是uts原生插件作者必须得有mac电脑,普通的App开发者可以没有mac电脑。
-
js逻辑层已于4.11版上线
-
swift逻辑层还未上线
-
swift逻辑层还未发布
虽然理论上swift逻辑层的性能要高于js逻辑层,但开发者可以放心使用js逻辑层。
uni-app x在iphone上的js逻辑层和原生渲染层的通信经过特殊处理,大幅提升通信效率问题,不再需要bindingX这类技术。也不存在flutter那种混合渲染问题。
\
可以体验hello uni-app x的iOS版本,在slider-100、滚动时动态调整view的top值以维持吸顶等极端场景,均如Android一样的丝滑流畅。
使用js逻辑层除了能在windows下开发,还有一个好处是大幅降低插件生态的建设难度。
使用js逻辑层有若干好处:
-
可以在windows下开发(纯Swift只能在mac下开发)
-
支持开发期间热刷新(纯Swift修改代码只能重新编译打包安装)
-
大幅降低插件生态的建设难度
插件作者只需要特殊适配Android版本,在iOS和Web端仍使用ts/js库,即可快速把uni-app/web的生态迁移到uni-app x中。
例如这个
[
request拦截库
](
https://ext.dcloud.net.cn/plugin?id=16177
)
...
...
@@ -280,9 +283,8 @@ uni-app x支持npm,但npm的大多数库是for web的,无法跨端,这些
除上述文档中声明已经完成的,还有如下需要注意:
-
平台支持:Android、Web、iOS
版已发布。虽然uts语言支持swift,可以写原生插件,但uvue的iOS版目前只上线了js逻辑层,还未发布swift逻辑层
。
-
平台支持:Android、Web、iOS
、鸿蒙版已发布
。
-
小程序平台:4.41起支持微信小程序。其他小程序还在陆续适配中。
-
鸿蒙next平台:4.61起支持鸿蒙next。
-
目前不支持国际区账户,仅大陆区开发者账户可用。
::: info
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录