提交 b355ed57 编写于 作者: D DCloud_LXH

Merge branch 'master' into vue

...@@ -27,4 +27,4 @@ ...@@ -27,4 +27,4 @@
<!-- UTSAPIJSON.general_type.param --> <!-- UTSAPIJSON.general_type.param -->
## tips ## tips
- 本文的截屏指手机自带的截屏事件的监听和取消监听,由用户操作手机按键触发。如需通过代码对view截屏,另见API [takeSnapshot](../dom/element.md#takesnapshot) - 本文的截屏指手机自带的截屏事件的监听和取消监听,由用户操作手机按键触发。App平台如需通过代码对view截屏,另见API [takeSnapshot](../dom/element.md#takesnapshot)
\ No newline at end of file \ No newline at end of file
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
<!-- UTSAPIJSON.installApk.description --> <!-- UTSAPIJSON.installApk.description -->
在HBuilderX 3.99以前,uni.install是ext api,需单独[下载](https://ext.dcloud.net.cn/plugin?id=15118)。从HBuilderX 3.99起 uni-app x 内置了该api,无需再单独下载。
安装Apk最常见的场景是App的升级,更推荐使用uni的[App升级中心](https://doc.dcloud.net.cn/uniCloud/upgrade-center.html),这是一个云端一体开源项目,想达到该项目的体验细节需要大量代码,不如直接拿走使用。 安装Apk最常见的场景是App的升级,更推荐使用uni的[App升级中心](https://doc.dcloud.net.cn/uniCloud/upgrade-center.html),这是一个云端一体开源项目,想达到该项目的体验细节需要大量代码,不如直接拿走使用。
<!-- UTSAPIJSON.installApk.param --> <!-- UTSAPIJSON.installApk.param -->
...@@ -16,6 +14,9 @@ ...@@ -16,6 +14,9 @@
<!-- UTSAPIJSON.install-apk.example --> <!-- UTSAPIJSON.install-apk.example -->
## Tips
- HBuilderX 3.99以前,uni.install是ext api,需单独[下载](https://ext.dcloud.net.cn/plugin?id=15118)。从HBuilderX 3.99起 uni-app x 内置了该api,无需再单独下载。
<!-- UTSAPIJSON.general_type.name --> <!-- UTSAPIJSON.general_type.name -->
<!-- UTSAPIJSON.general_type.param --> <!-- UTSAPIJSON.general_type.param -->
\ No newline at end of file
...@@ -74,6 +74,12 @@ ...@@ -74,6 +74,12 @@
<!-- UTSAPIJSON.general_type.param --> <!-- UTSAPIJSON.general_type.param -->
## 页面跳转与参数传递
A页面跳转到B页面时,有两种方式给B页面传递信息:
1. A页面跳转时,B页面的URL中通过?param1=param1value&param2=param2value方式传递,然后B页面在Onload里接收参数。详见[页面onLoad生命周期](../page.md#onload)
2. 通过eventbus,详见[uni.$on、uni.$emit等API](event-bus.md)
## Bug & Tips@tips ## Bug & Tips@tips
* ``navigateTo``, ``redirectTo`` 只能打开非 tabBar 页面。 * ``navigateTo``, ``redirectTo`` 只能打开非 tabBar 页面。
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
#### 注意事项 #### #### 注意事项 ####
+ `position` 参数`android`平台特别说明 + App平台 `position` 参数特别说明
如果没有设置 `position` 字段,`uni.showToast` 会采用应用弹窗方案,即弹窗与页面生命周期绑定。 页面关闭时,当前页面弹出的所有弹窗都会被自动取消。 如果没有设置 `position` 字段,`uni.showToast` 会采用应用弹窗方案,即弹窗与页面生命周期绑定。 页面关闭时,当前页面弹出的所有弹窗都会被自动取消。
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
uni.request<Person>(options) uni.request<Person>(options)
``` ```
* app-android平台 uni.request()暂未支持Promise,返回值是RequestTask。 * app-android平台 uni.request()暂未支持Promise,返回值是RequestTask。
* web平台 request接口目前没有返回UTSJSONObject类型数据而是一个普通对象,后续可能会调整为UTSJSONObject类型,如需兼容多端可以使用下标获取request返回的数据内容。 * web平台 request接口在 4.01版本之前返回数据是一个普通对象,4.01起调整为UTSJSONObject类型
* web平台 request接口目前不支持创建传入的泛型的实例 * web平台 request接口目前不支持创建传入的泛型的实例
由于uni-app x的强类型,导致联网相关开发有一些不同,请参考完整教程:[uni-app x的联网教程](../tutorial/request.md) 由于uni-app x的强类型,导致联网相关开发有一些不同,请参考完整教程:[uni-app x的联网教程](../tutorial/request.md)
......
...@@ -8,21 +8,31 @@ ...@@ -8,21 +8,31 @@
<!-- UTSCOMJSON.form.compatibility --> <!-- UTSCOMJSON.form.compatibility -->
## form内容项控制逻辑
form组件的内容子组件包括:input、textarea、checkbox、radio、switch、slider,以及负责提交或重置的button组件。
button可以设置form-type属性为submit或reset,点击时会分别触发form的提交或重置。
在表单submit或reset时,这些表单内容子组件的值会被提交或重置。
注意:目前不支持上述组件之外自行添加表单内容子组件。如有自定义组件,则不能使用form组件提交,需自行通过绑定data的方式获取组件值并自行编码提交数据。
### submit策略差异 ### submit策略差异
form 组件的表单提交,微信小程序的实现策略,与浏览器W3C的策略略有差异。目前uni-app在app和web上的实现参考了微信小程序。具体是: form 组件的表单提交,微信小程序的实现策略,与浏览器W3C的策略略有差异。目前uni-app(x)在submit时,app和web上的实现与微信小程序相同。具体是:
- uni-app表单提交的数据是一个对象`{"name": "value"}`。而浏览器标准form是数组,每项为 pair,pair[0] 对应name,pair[1] 对应value 。 - uni-app表单提交的数据是一个对象`{"name": "value"}`。而浏览器标准form是数组,每项为 pair,pair[0] 对应name,pair[1] 对应value 。
- 多个表单子项如果 name 相同,仅保留最后一个表单子项。而浏览器标准form整体是数组,不存在覆盖的情况。 - 多个表单子项如果 name 相同,仅保留最后一个表单子项。而浏览器标准form整体是数组,不存在覆盖的情况。
- 设置 disabled 属性的表单子项,仍然会提交。而浏览器标准form提交时会忽略disabled的表单子项。 - 设置 disabled 属性的表单子项,仍然会提交。而浏览器标准form提交时会忽略disabled的表单子项。
注意uni-app编译到web平台,也是按uni-app的策略,而不是浏览器的策略。uni-app 的 web平台使用 uni-app 自己的 form 组件,而不是浏览器的 form 标签。 注意uni-app(x)编译到web平台,也是按uni-app(x)的策略,而不是浏览器的策略。uni-app(x) 的 web平台使用 uni-app 自己的 form 组件,而不是浏览器的 form 标签。
### reset策略差异 ### reset策略差异
reset在浏览器W3C的策略是还原、重置。 reset在浏览器W3C的策略是还原、重置。
在uni-app中,不同平台的策略不同,有的是`还原`,有的是`清空` 在uni-app(x)中,不同平台的策略不同,有的是`还原`,有的是`清空`
各平台策略如下: 各平台策略如下:
...@@ -92,7 +102,3 @@ reset在浏览器W3C的策略是还原、重置。 ...@@ -92,7 +102,3 @@ reset在浏览器W3C的策略是还原、重置。
<!-- UTSCOMJSON.form.example --> <!-- UTSCOMJSON.form.example -->
<!-- UTSCOMJSON.form.reference --> <!-- UTSCOMJSON.form.reference -->
## Bug & Tips
- App平台仅支持 uni 内置表单组件,暂不支持开发者组件内的表单组件
...@@ -14,7 +14,23 @@ ...@@ -14,7 +14,23 @@
<!-- UTSCOMJSON.input.reference --> <!-- UTSCOMJSON.input.reference -->
## 键盘上推专题@adjust-position
在App平台,input和textarea组件都一个属性`adjust-position`,默认为true,即软键盘弹出时,默认上推页面以显示出输入框,避免输入框被软键盘遮挡。
软键盘弹出后会挡住输入框,此时启动上推逻辑。默认的上推策略是:
- 如果输入框在scroll-view里,会优先滚动scroll-view,以保证显示出输入框。
- 如果没有可滚动区域,会transform上移页面,以保证显示出输入框。
但是默认的上推策略无法适配所有场景,有些场景需要关闭默认上推策略,即把属性`adjust-position`设为false,然后在输入框的focus或keyboardheightchange事件中获取键盘高度,手动调整界面。
默认上推策略时,如果页面使用了自定义导航栏,常见注意事项是软键盘弹出后可能把自定义导航栏推出可视范围。\
此时注意顶部导航栏不能在滚动视图中,且需要使用css固定在顶部,然后下面放一个scroll-view,输入框放在scroll-view中,就不会把自定义导航栏顶飞。\
如果这种方式仍然不能满足需求,那么就需要关闭默认的上推策略,手动控制。
在web端平台,输入框上推逻辑是由浏览器自动完成的,属性`adjust-position`无效。
但iOS safari软键盘弹出时,整个页面会上推而不是挤压,导致pages.json配置的导航栏会上移到屏幕之外。
## Tips ## Tips
- 从uni-app x 4.0起,App-Android平台 input 点击输入框外的屏幕会自动收起软键盘。 - 从uni-app x 4.0起,App-Android平台 input 点击输入框外的屏幕会自动收起软键盘。
- 从uni-app x 4.0起,App-Android平台 input 的 font-size 默认值统一为 16px。 - 从uni-app x 4.0起,App-Android平台 input 的 font-size 默认值统一为 16px。
- web端iOS safari软键盘弹出时,整个页面会上推而不是挤压,从而导致导航栏可能会上移到屏幕之外。
...@@ -14,3 +14,5 @@ ...@@ -14,3 +14,5 @@
<!-- UTSCOMJSON.navigator.reference --> <!-- UTSCOMJSON.navigator.reference -->
## Tips
navigator组件是对uni.navigateTo API的易用性封装,无需编写method方法,直接跳转页面。跳转后的新页面在onload生命周期中接收参数,详见[页面onLoad生命周期](../page.md#onload)
\ No newline at end of file
...@@ -14,10 +14,14 @@ ...@@ -14,10 +14,14 @@
<!-- UTSCOMJSON.textarea.reference --> <!-- UTSCOMJSON.textarea.reference -->
## 键盘上推专题
input和textarea组件都一个属性`adjust-position`,默认为true,即软键盘弹出时,默认上推页面以显示出输入框,避免输入框被软键盘遮挡。
因为此处内容与input重复,详见[input文档](input.md#adjust-position)
## Tips ## Tips
- 从 uni-app x 4.0 起,App-Android平台 textarea 点击输入框外的屏幕会自动收起软键盘。 - 从 uni-app x 4.0 起,App-Android平台 textarea 点击输入框外的屏幕会自动收起软键盘。
* 从 uni-app x 4.0 起,App-Android平台 textarea 的 font-size 默认值统一为 16px,line-height 默认值为 1.2em,width 默认值为300px * 从 uni-app x 4.0 起,App-Android平台 textarea 的 font-size 默认值统一为 16px,line-height 默认值为 1.2em,width 默认值为300px
* 在Android 9以下的系统版本,样式`line-height`点击键盘换行时行间距设置无效,此问题是Android系统的的bug,后续解决。 * 在Android 9以下的系统版本,样式`line-height`点击键盘换行时行间距设置无效,此问题是Android系统的的bug,后续解决。
* 由于Android系统限制,textarea的键盘右下角按钮只能是`换行`,所以暂时不提供`confirm-type`属性。 * 由于Android系统限制,textarea的键盘右下角按钮只能是`换行`,所以暂时不提供`confirm-type`属性。
\ No newline at end of file
- web端iOS safari软键盘弹出时,整个页面会上推而不是挤压,从而导致导航栏可能会上移到屏幕之外。
\ No newline at end of file
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
示例代码, [详见](./vue/README.md#lifecycle-options) 示例代码, [详见](./vue/README.md#lifecycle-options)
### 页面onLoad生命周期 @onload ### 页面onLoad生命周期@onload
页面初始化时,会触发onLoad生命周期。此时Dom还未构建渲染完毕(需要等onReady)。 页面初始化时,会触发onLoad生命周期。此时Dom还未构建渲染完毕(需要等onReady)。
......
...@@ -197,6 +197,8 @@ UTS组件的优势在于,它秉承了UTS的跨平台特性,统一的UTS语 ...@@ -197,6 +197,8 @@ UTS组件的优势在于,它秉承了UTS的跨平台特性,统一的UTS语
/** /**
* 规则:如果没有配置expose,则methods中的方法均对外暴露,如果配置了expose,则以expose的配置为准向外暴露 * 规则:如果没有配置expose,则methods中的方法均对外暴露,如果配置了expose,则以expose的配置为准向外暴露
* ['publicMethod'] 含义为:只有 `publicMethod` 在实例上可用 * ['publicMethod'] 含义为:只有 `publicMethod` 在实例上可用
*
* 注意:如果在data中声明了一个变量,此时组件配置了 expose字段,但未在expose字段中包含此变量。会导致该变量被标记为`private`:仅能在组件内使用,不能在组件外访问
*/ */
expose: ['doSomething'], expose: ['doSomething'],
methods: { methods: {
......
...@@ -140,7 +140,7 @@ UTS.entitlements 格式及配置规则与 iOS 工程中是一致的,云端打 ...@@ -140,7 +140,7 @@ UTS.entitlements 格式及配置规则与 iOS 工程中是一致的,云端打
### 3.4 依赖三方库 ### 3.4 依赖三方库
uts 插件支持依赖三方库,目前支持 framework、xcframework(仅云打包支持)、.a库 uts 插件支持依赖三方库,目前支持 framework、xcframework、.a库
#### 3.4.1 framework依赖库说明 #### 3.4.1 framework依赖库说明
......
...@@ -27,6 +27,9 @@ ...@@ -27,6 +27,9 @@
} }
``` ```
> 注意:拷贝以上代码时请手动删除注释,实际项目中config.json中不能包含注释信息
**配置说明:** **配置说明:**
- deploymentTarget:插件支持的最低 iOS 版本号,此节点为可选项,默认设置为 9.0. - deploymentTarget:插件支持的最低 iOS 版本号,此节点为可选项,默认设置为 9.0.
+ 插件支持的最低版本号应该设置为所有依赖的三方库(包含 framework .a pod )中最低支持版本号中的最高的一个。 + 插件支持的最低版本号应该设置为所有依赖的三方库(包含 framework .a pod )中最低支持版本号中的最高的一个。
......
...@@ -28,10 +28,12 @@ uni-app x的项目,在左侧项目管理器的图标是圆形的U(之前是 ...@@ -28,10 +28,12 @@ uni-app x的项目,在左侧项目管理器的图标是圆形的U(之前是
uni-app x的项目结构与[uni-app js引擎版的项目结构](https://uniapp.dcloud.net.cn/tutorial/project.html)基本一致。 uni-app x的项目结构与[uni-app js引擎版的项目结构](https://uniapp.dcloud.net.cn/tutorial/project.html)基本一致。
主要的差别是没有nativeplugins目录和wxcomponents目录。原因是uni-app x不支持uni-app js引擎版的原生语言插件,不支持微信小程序wxml组件。 主要的差别是没有nativeplugins目录。原因是uni-app x不支持App原生语言插件,仅支持uts插件。
基于uts的插件,可以在uni-app x和uni-app上通用。 基于uts的插件,可以在uni-app x和uni-app上通用。
uni-app x的App平台也不支持微信小程序wxml组件。
<pre v-pre="" data-lang=""> <pre v-pre="" data-lang="">
<code class="lang-" style="padding:0"> <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> ┌─uniCloud 云空间目录,支付宝小程序云为uniCloud-alipay,阿里云为uniCloud-aliyun,腾讯云为uniCloud-tcb(详见<a href="https://doc.dcloud.net.cn/uniCloud/quickstart?structure&id=structure">uniCloud</a>
...@@ -50,6 +52,7 @@ uni-app x的项目结构与[uni-app js引擎版的项目结构](https://uniapp.d ...@@ -50,6 +52,7 @@ uni-app x的项目结构与[uni-app js引擎版的项目结构](https://uniapp.d
│ ├─android Android原生资源目录 <a href="https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-android">详见</a> │ ├─android Android原生资源目录 <a href="https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-android">详见</a>
| └─ios iOS原生资源目录 <a href="https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-ios.html#%E8%B5%84%E6%BA%90%E6%96%87%E4%BB%B6-bundle-resources">详见</a> | └─ios iOS原生资源目录 <a href="https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-ios.html#%E8%B5%84%E6%BA%90%E6%96%87%E4%BB%B6-bundle-resources">详见</a>
├─hybrid App端存放web-view组件使用的本地html文件的目录,<a href="./component/web-view">详见</a> ├─hybrid App端存放web-view组件使用的本地html文件的目录,<a href="./component/web-view">详见</a>
├─wxcomponents 微信小程序平台wxml组件专用目录
├─unpackage 非工程代码,一般存放运行或发行的编译结果、App自定义基座 ├─unpackage 非工程代码,一般存放运行或发行的编译结果、App自定义基座
├─main.uts Vue初始化入口文件 ├─main.uts Vue初始化入口文件
├─App.uvue 应用配置,用来配置App全局样式以及监听 <a href="/collocation/App#应用生命周期">详见</a> ├─App.uvue 应用配置,用来配置App全局样式以及监听 <a href="/collocation/App#应用生命周期">详见</a>
...@@ -65,13 +68,13 @@ uni-app x的项目结构与[uni-app js引擎版的项目结构](https://uniapp.d ...@@ -65,13 +68,13 @@ uni-app x的项目结构与[uni-app js引擎版的项目结构](https://uniapp.d
### App运行 ### App运行
uni-app x的真机运行基座(playground),和uni-app js引擎版不同,是一个绿色圆形的U(之前是方型H),基座名称默认为`uni-app x`(之前叫HBuilder)。 uni-app x的真机运行基座(playground),和 uni-app/5+App/wap2app 不同,是一个绿色圆形的U(之前是方型H),基座名称默认为`uni-app x`(之前叫HBuilder)。
![](./static/playground.jpg) ![](./static/playground.jpg)
- uni-app x基座,只能运行uni-app x项目,包名是io.dcloud.uniappx - uni-app x基座,只能运行uni-app x项目,包名是io.dcloud.uniappx
- HBuilder基座,可以运行5+App、wap2app和uni-app js引擎版。包名是io.dcloud.HBuilder - HBuilder基座,可以运行uni-app/5+App/wap2app。包名是io.dcloud.HBuilder
标准基座使用的图标、包名、证书以及配置的三方sdk的appkey等各种原生信息,都是DCloud的。这些无法更改。 标准基座使用的图标、包名、证书以及配置的三方sdk的appkey等各种原生信息,都是DCloud的。
当需要使用自己的包名、证书和原生配置进行运行调试时,需在打包界面勾选打包自定义基座,打包后的自定义基座会放置在项目的unpackage目录下,然后在运行项目时的界面中可以选择自定义基座来运行。 当需要使用自己的包名、证书和原生配置进行运行调试时,需在打包界面勾选打包自定义基座,打包后的自定义基座会放置在项目的unpackage目录下,然后在运行项目时的界面中可以选择自定义基座来运行。
...@@ -83,7 +86,7 @@ uni-app x运行时,控制台右上角可以选择开启原生日志。 ...@@ -83,7 +86,7 @@ uni-app x运行时,控制台右上角可以选择开启原生日志。
uni-app x App平台,目前打包的apk暂不支持渠道包。不支持wgt热更新、不支持安心打包。下载到项目下的uts插件可打包含入。 uni-app x App平台,目前打包的apk暂不支持渠道包。不支持wgt热更新、不支持安心打包。下载到项目下的uts插件可打包含入。
## web的运行和发行 ## web的运行和发行注意
uni-app x运行到浏览器时,编译基于vite,其特点是按需编译。所以项目运行后很快能看到首页,但点击二级页时有等待延迟,因为此时正在先编译后再渲染。 uni-app x运行到浏览器时,编译基于vite,其特点是按需编译。所以项目运行后很快能看到首页,但点击二级页时有等待延迟,因为此时正在先编译后再渲染。
......
#### 4.14.2024043008
##### uts插件
* 编译器 修复 Windows 平台 编译器相关动态库没有数字签名导致可能被某些防病毒软件拦截进而导致编译失败的Bug
* Web平台 修复 解构时默认值无法覆盖null的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=1076)
* App平台 优化 API插件模板中 unierror.uts 错误对象构造函数,兼容 web 平台使用
* App平台 修复 interface 中可选属性可能编译不正确的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=1202)
* App平台 修复 正则表达式包含双引号时编译报错的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=1428)
* App-Android平台 修复 声明 UTSJSONObject 类型后,无法二次赋值的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=851)
* App-Android平台 修复 switch 语句 default 语句仅包含 break 时,编译报错的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=852)
* App-Android平台 修复 String.match 与web平台不一致的Bug [详情]( https://issues.dcloud.net.cn/pages/issues/detail?id=835)
* App-Android平台 修复 RegExp.exec 匹配的捕获组结果与web平台不一致的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=954)
* App-Android平台 修复 Date toISOString/toJSON 返回日期数据可能偏差一天的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=1464)
* App-iOS平台 修复 对象字面量as成uni-module app-js内的type时未能转为指定类型的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=1314)
* App-iOS平台 修复 if else 空语句时编译报错的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=1351)
* App-iOS平台 修复 class定义无参constructor时编译报错的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=1342)
* App-iOS平台 修复 class定义boolean类型的getter、setter时编译报错的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=1332)
#### 4.07.2024032720 #### 4.07.2024032720
##### uni-app x 插件 ##### uni-app x 插件
* Web平台 修复 4.06版引出的 button 更改 border-radius 后边框样式不对的Bug * Web平台 修复 4.06版引出的 button 更改 border-radius 后边框样式不对的Bug
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册