diff --git a/docs/api/capturescreen.md b/docs/api/capturescreen.md index 63c6c04c1b5c4d0777ee3919250de8cb4017d324..3083ace7eb45dfe45a029686d2c471fe56721a35 100644 --- a/docs/api/capturescreen.md +++ b/docs/api/capturescreen.md @@ -27,4 +27,4 @@ ## tips -- 本文的截屏指手机自带的截屏事件的监听和取消监听,由用户操作手机按键触发。如需通过代码对view截屏,另见API [takeSnapshot](../dom/element.md#takesnapshot) \ No newline at end of file +- 本文的截屏指手机自带的截屏事件的监听和取消监听,由用户操作手机按键触发。App平台如需通过代码对view截屏,另见API [takeSnapshot](../dom/element.md#takesnapshot) \ No newline at end of file diff --git a/docs/api/install-apk.md b/docs/api/install-apk.md index ef9a2e2e3e2f5aae3a75eb0218a95452b1aa5f4b..c7de2e193822fd1bc3e39a58a7194bf24005f099 100644 --- a/docs/api/install-apk.md +++ b/docs/api/install-apk.md @@ -2,8 +2,6 @@ -在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),这是一个云端一体开源项目,想达到该项目的体验细节需要大量代码,不如直接拿走使用。 @@ -16,6 +14,9 @@ +## Tips +- HBuilderX 3.99以前,uni.install是ext api,需单独[下载](https://ext.dcloud.net.cn/plugin?id=15118)。从HBuilderX 3.99起 uni-app x 内置了该api,无需再单独下载。 + \ No newline at end of file diff --git a/docs/api/navigator.md b/docs/api/navigator.md index 1bd2a53349ffa293cdb984f84d2c012819c6e8b9..f6a450a99e94a71f1410434e5ea147d1c445f16c 100644 --- a/docs/api/navigator.md +++ b/docs/api/navigator.md @@ -74,6 +74,12 @@ +## 页面跳转与参数传递 + +A页面跳转到B页面时,有两种方式给B页面传递信息: +1. A页面跳转时,B页面的URL中通过?param1=param1value¶m2=param2value方式传递,然后B页面在Onload里接收参数。详见[页面onLoad生命周期](../page.md#onload) +2. 通过eventbus,详见[uni.$on、uni.$emit等API](event-bus.md) + ## Bug & Tips@tips * ``navigateTo``, ``redirectTo`` 只能打开非 tabBar 页面。 diff --git a/docs/api/prompt.md b/docs/api/prompt.md index 3631f14066f53683c0029f7b672c5cca1ccc7da8..6b151f558c68042800d2543e6bb8fe55ac21b541 100644 --- a/docs/api/prompt.md +++ b/docs/api/prompt.md @@ -14,7 +14,7 @@ #### 注意事项 #### -+ `position` 参数`android`平台特别说明 ++ App平台 `position` 参数特别说明 如果没有设置 `position` 字段,`uni.showToast` 会采用应用弹窗方案,即弹窗与页面生命周期绑定。 页面关闭时,当前页面弹出的所有弹窗都会被自动取消。 diff --git a/docs/api/request.md b/docs/api/request.md index 16ce67230049d17788bf70754aa60e4d99d378f6..e57818807cc265733cd90fb65721e5ef74ba5796 100644 --- a/docs/api/request.md +++ b/docs/api/request.md @@ -24,7 +24,7 @@ uni.request(options) ``` * app-android平台 uni.request()暂未支持Promise,返回值是RequestTask。 -* web平台 request接口目前没有返回UTSJSONObject类型数据而是一个普通对象,后续可能会调整为UTSJSONObject类型,如需兼容多端可以使用下标获取request返回的数据内容。 +* web平台 request接口在 4.01版本之前返回数据是一个普通对象,4.01起调整为UTSJSONObject类型 * web平台 request接口目前不支持创建传入的泛型的实例 由于uni-app x的强类型,导致联网相关开发有一些不同,请参考完整教程:[uni-app x的联网教程](../tutorial/request.md) diff --git a/docs/component/form.md b/docs/component/form.md index fabe4667d82aead463ce88d2fde13f5f4416773b..b345e87cd97dc3b19b31f8603b41eb49103e1f3e 100644 --- a/docs/component/form.md +++ b/docs/component/form.md @@ -8,21 +8,31 @@ +## form内容项控制逻辑 + +form组件的内容子组件包括:input、textarea、checkbox、radio、switch、slider,以及负责提交或重置的button组件。 + +button可以设置form-type属性为submit或reset,点击时会分别触发form的提交或重置。 + +在表单submit或reset时,这些表单内容子组件的值会被提交或重置。 + +注意:目前不支持上述组件之外自行添加表单内容子组件。如有自定义组件,则不能使用form组件提交,需自行通过绑定data的方式获取组件值并自行编码提交数据。 + ### 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 。 - 多个表单子项如果 name 相同,仅保留最后一个表单子项。而浏览器标准form整体是数组,不存在覆盖的情况。 - 设置 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在浏览器W3C的策略是还原、重置。 -在uni-app中,不同平台的策略不同,有的是`还原`,有的是`清空`。 +在uni-app(x)中,不同平台的策略不同,有的是`还原`,有的是`清空`。 各平台策略如下: @@ -92,7 +102,3 @@ reset在浏览器W3C的策略是还原、重置。 - -## Bug & Tips - -- App平台仅支持 uni 内置表单组件,暂不支持开发者组件内的表单组件 diff --git a/docs/component/input.md b/docs/component/input.md index 2cec320af661ed1785d8f23a6147b367ef7f9946..cfe5fab4cb011e71733a86039003c2c268a54384 100644 --- a/docs/component/input.md +++ b/docs/component/input.md @@ -14,7 +14,23 @@ +## 键盘上推专题@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 - 从uni-app x 4.0起,App-Android平台 input 点击输入框外的屏幕会自动收起软键盘。 - 从uni-app x 4.0起,App-Android平台 input 的 font-size 默认值统一为 16px。 -- web端iOS safari软键盘弹出时,整个页面会上推而不是挤压,从而导致导航栏可能会上移到屏幕之外。 diff --git a/docs/component/navigator.md b/docs/component/navigator.md index daf284faef19c1210ebb9d14462fce017639a4c6..0c6e36a1e8798cba58d0bd7b23dd4cf3059da728 100644 --- a/docs/component/navigator.md +++ b/docs/component/navigator.md @@ -14,3 +14,5 @@ +## Tips +navigator组件是对uni.navigateTo API的易用性封装,无需编写method方法,直接跳转页面。跳转后的新页面在onload生命周期中接收参数,详见[页面onLoad生命周期](../page.md#onload) \ No newline at end of file diff --git a/docs/component/textarea.md b/docs/component/textarea.md index f60bacfac279a208245d0ce0ccf8a288cdd30dbc..7deae043137f00f71ed4dc9f8e13fc349ce777b3 100644 --- a/docs/component/textarea.md +++ b/docs/component/textarea.md @@ -14,10 +14,14 @@ +## 键盘上推专题 +input和textarea组件都一个属性`adjust-position`,默认为true,即软键盘弹出时,默认上推页面以显示出输入框,避免输入框被软键盘遮挡。 + +因为此处内容与input重复,详见[input文档](input.md#adjust-position) + ## Tips - 从 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系统限制,textarea的键盘右下角按钮只能是`换行`,所以暂时不提供`confirm-type`属性。 -- web端iOS safari软键盘弹出时,整个页面会上推而不是挤压,从而导致导航栏可能会上移到屏幕之外。 \ No newline at end of file +* 由于Android系统限制,textarea的键盘右下角按钮只能是`换行`,所以暂时不提供`confirm-type`属性。 \ No newline at end of file diff --git a/docs/page.md b/docs/page.md index c729acf936797d9b698eda117287cf064ca66fee..b342076ac001a1603f173f80e1c53dbbfc1233cc 100644 --- a/docs/page.md +++ b/docs/page.md @@ -8,7 +8,7 @@ 示例代码, [详见](./vue/README.md#lifecycle-options) -### 页面onLoad生命周期 @onload +### 页面onLoad生命周期@onload 页面初始化时,会触发onLoad生命周期。此时Dom还未构建渲染完毕(需要等onReady)。 diff --git a/docs/plugin/uts-component.md b/docs/plugin/uts-component.md index 4b2c733c3a29fd835e278a14bf0e1c74862931d3..a23c22af243b3903f703797a606b02553a2ad8e3 100644 --- a/docs/plugin/uts-component.md +++ b/docs/plugin/uts-component.md @@ -197,6 +197,8 @@ UTS组件的优势在于,它秉承了UTS的跨平台特性,统一的UTS语 /** * 规则:如果没有配置expose,则methods中的方法均对外暴露,如果配置了expose,则以expose的配置为准向外暴露 * ['publicMethod'] 含义为:只有 `publicMethod` 在实例上可用 + * + * 注意:如果在data中声明了一个变量,此时组件配置了 expose字段,但未在expose字段中包含此变量。会导致该变量被标记为`private`:仅能在组件内使用,不能在组件外访问 */ expose: ['doSomething'], methods: { diff --git a/docs/plugin/uts-for-ios.md b/docs/plugin/uts-for-ios.md index 1743fe4a85f60919fb3d17de3eeab44f52bf58df..610924d59eaca3ffb0da1751a9ef827927dcaad6 100644 --- a/docs/plugin/uts-for-ios.md +++ b/docs/plugin/uts-for-ios.md @@ -140,7 +140,7 @@ UTS.entitlements 格式及配置规则与 iOS 工程中是一致的,云端打 ### 3.4 依赖三方库 -uts 插件支持依赖三方库,目前支持 framework、xcframework(仅云打包支持)、.a库 +uts 插件支持依赖三方库,目前支持 framework、xcframework、.a库 #### 3.4.1 framework依赖库说明 diff --git a/docs/plugin/uts-ios-cocoapods.md b/docs/plugin/uts-ios-cocoapods.md index 9e6f1790625189ee1beae2d2e54f423625bbda09..720be2f7a7e1d0b6962f41f2da2f038464152b38 100644 --- a/docs/plugin/uts-ios-cocoapods.md +++ b/docs/plugin/uts-ios-cocoapods.md @@ -27,6 +27,9 @@ } ``` +> 注意:拷贝以上代码时请手动删除注释,实际项目中config.json中不能包含注释信息 + + **配置说明:** - deploymentTarget:插件支持的最低 iOS 版本号,此节点为可选项,默认设置为 9.0. + 插件支持的最低版本号应该设置为所有依赖的三方库(包含 framework .a pod )中最低支持版本号中的最高的一个。 diff --git a/docs/project.md b/docs/project.md index fb30fe45b2fb4ae4e9c6a417188efee8bcb83e3f..02c611c7ef0faf17b3425af630b59f385468bde1 100644 --- a/docs/project.md +++ b/docs/project.md @@ -28,10 +28,12 @@ uni-app x的项目,在左侧项目管理器的图标是圆形的U(之前是 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上通用。 +uni-app x的App平台也不支持微信小程序wxml组件。 +
 	
 ┌─uniCloud              云空间目录,支付宝小程序云为uniCloud-alipay,阿里云为uniCloud-aliyun,腾讯云为uniCloud-tcb(详见uniCloud)
@@ -50,6 +52,7 @@ uni-app x的项目结构与[uni-app js引擎版的项目结构](https://uniapp.d
 │  ├─android            Android原生资源目录 详见
 |  └─ios                iOS原生资源目录 详见
 ├─hybrid                App端存放web-view组件使用的本地html文件的目录,详见
+├─wxcomponents          微信小程序平台wxml组件专用目录
 ├─unpackage             非工程代码,一般存放运行或发行的编译结果、App自定义基座
 ├─main.uts              Vue初始化入口文件
 ├─App.uvue              应用配置,用来配置App全局样式以及监听 详见
@@ -65,13 +68,13 @@ uni-app x的项目结构与[uni-app js引擎版的项目结构](https://uniapp.d
 
 ### 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)
 
 - 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目录下,然后在运行项目时的界面中可以选择自定义基座来运行。
 
@@ -83,7 +86,7 @@ uni-app x运行时,控制台右上角可以选择开启原生日志。
 
 uni-app x App平台,目前打包的apk暂不支持渠道包。不支持wgt热更新、不支持安心打包。下载到项目下的uts插件可打包含入。
 
-## web的运行和发行
+## web的运行和发行注意
 
 uni-app x运行到浏览器时,编译基于vite,其特点是按需编译。所以项目运行后很快能看到首页,但点击二级页时有等待延迟,因为此时正在先编译后再渲染。
 
diff --git a/docs/release.md b/docs/release.md
index 176ec0dfd184277f70f5a1194cd1d0516f62910c..97d3ce398739772c5e8dc226d5eb9b5f611f096a 100644
--- a/docs/release.md
+++ b/docs/release.md
@@ -1,5 +1,22 @@
 
 
+#### 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
 ##### uni-app x 插件
 * Web平台 修复 4.06版引出的 button 更改 border-radius 后边框样式不对的Bug