From 5aae939272c353fc4cef0eaa58885fafdfe093d6 Mon Sep 17 00:00:00 2001
From: DCloud_LXH <283700113@qq.com>
Date: Mon, 25 Sep 2023 16:05:13 +0800
Subject: [PATCH] fix: uni-app x api
---
docs/uni-app-x/api/README.md | 42 +++++++
docs/uni-app-x/api/exit.md | 10 ++
docs/uni-app-x/api/nodes-info.md | 125 +++++++++++++++++++-
docs/uni-app-x/api/pagescrollto.md | 6 +
docs/uni-app-x/api/pull-down-refresh.md | 7 ++
docs/uni-app-x/api/request.md | 11 +-
docs/uni-app-x/api/setnavigationbarcolor.md | 2 +
docs/uni-app-x/api/storage.md | 17 +++
8 files changed, 218 insertions(+), 2 deletions(-)
create mode 100644 docs/uni-app-x/api/README.md
diff --git a/docs/uni-app-x/api/README.md b/docs/uni-app-x/api/README.md
new file mode 100644
index 000000000..5d823efc6
--- /dev/null
+++ b/docs/uni-app-x/api/README.md
@@ -0,0 +1,42 @@
+# API概述
+
+uni-app x项目的uts代码中可以使用很多API。包括:
+
+- uts的api [详见](../../uts/buildin-object-api/global.md)
+- 全局api,前面不需要加`uni.`。如`getApp`
+- uni.xxx的内置api。见左侧
+- uniCloud.xxx的内置api。见左侧
+- dom的api [详见](dom/README.md)
+- vue的api [详见](../../tutorial/vue3-api.md)
+- 原生api
+
+ 由于uts可以直接调用Android和iOS的api,所以os和三方sdk的能力都可以在uts中调用。如下:
+
+```vue
+
+```
+
+上面的示例,在页面启动时打印了2行日志,显示手机型号。
+
+- uni.getSystemInfoSync,是uni的api
+- import的Build,是Android os的api
+
+可以看出,在uni-app x里,可以直接调用os的能力,不受限制,语法是uts的语法,但需要了解什么功能在原生里是哪个api。
+
+使用`uni.getSystemInfoSync`则比较简单,看uni的文档即可,且可跨平台。
+
+其实,`uni.getSystemInfoSync`的内部实现就是一个uts模块,底层使用了一样的代码。
+
+大多数uni.的api,都是uts开发的,它们会陆续开源在[uni-api](https://gitcode.net/dcloud/uni-api)。
+
+插件市场也有很多做好的uts插件,方便开发者拿来即用。[uts插件](https://ext.dcloud.net.cn/?cat1=8&type=UpdatedDate)
+
+虽然上述页面可以直接调用原生能力,但一般原生能力建议封装为[uni_modules](../../plugin/uni_modules.md)形式的[uts插件](../../plugin/uts-plugin.md)。这样方便共享、方便跨平台。
\ No newline at end of file
diff --git a/docs/uni-app-x/api/exit.md b/docs/uni-app-x/api/exit.md
index f07be9db5..df6988bdc 100644
--- a/docs/uni-app-x/api/exit.md
+++ b/docs/uni-app-x/api/exit.md
@@ -8,6 +8,16 @@
+本API仅Android App生效。
+
+Android平台的应用退出分热退出和冷退出。
+- 冷退出是彻底杀掉
+- 热退出是关闭可见的activity,后台进程不退出(比如push)
+
+基本上主流Android App都是热退出。本API也是热退出。
+
+热退出,即通知了os:这个app用户不用了,在os需要时可以回收。如果在os回收之前,用户又启动这个app,会感觉启动速度更快一些。
+
diff --git a/docs/uni-app-x/api/nodes-info.md b/docs/uni-app-x/api/nodes-info.md
index e5cc1ee18..8e0bc61c1 100644
--- a/docs/uni-app-x/api/nodes-info.md
+++ b/docs/uni-app-x/api/nodes-info.md
@@ -4,12 +4,135 @@
+**selector 说明:**
+
+``selector`` 类似于 CSS 的选择器,但仅支持下列语法。
+- ID选择器:``#the-id``
+- class选择器:``.a-class``
+
+##### NodeInfo 属性值
+
+|属性 |类型 |说明 |
+|--- |--- |--- |
+|id |String |节点的 ID |
+|dataset|Object |节点的 dataset |
+|left |Number |节点的左边界坐标 |
+|right |Number |节点的右边界坐标 |
+|top |Number |节点的上边界坐标 |
+|bottom |Number |节点的下边界坐标 |
+|width |Number |节点的宽度 |
+|height |Number |节点的高度 |
+
-
\ No newline at end of file
+
+
+
+### 代码示例
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+ left:
+ {{nodeInfo.left}}
+
+
+ top:
+ {{nodeInfo.top}}
+
+
+ right:
+ {{nodeInfo.right}}
+
+
+ bottom:
+ {{nodeInfo.bottom}}
+
+
+ width:
+ {{nodeInfo.width}}
+
+
+ height:
+ {{nodeInfo.height}}
+
+
+
+
+
+
+
+```
+
+组件内使用
+
+`this.createSelectorQuery()`, 等效于 `uni.createSelectorQuery().in(this)`
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+```
diff --git a/docs/uni-app-x/api/pagescrollto.md b/docs/uni-app-x/api/pagescrollto.md
index 3c9cb9301..eedc5a9a0 100644
--- a/docs/uni-app-x/api/pagescrollto.md
+++ b/docs/uni-app-x/api/pagescrollto.md
@@ -2,8 +2,14 @@
+可以滚动到指定的scrollTop值处,也可以滚动到指定的目标元素处(通过css选择器selector), 仅支持一级 class
+
+app-uvue下,只有页面的根元素为scroll-view时,本API才生效。[详见](../css/readme.md#pagescroll)
+
+`scrollTop` 和 `selector` 必须指定其中一个属性,否者触发 `fail` 回调
+
diff --git a/docs/uni-app-x/api/pull-down-refresh.md b/docs/uni-app-x/api/pull-down-refresh.md
index c77db359b..f5dd984cc 100644
--- a/docs/uni-app-x/api/pull-down-refresh.md
+++ b/docs/uni-app-x/api/pull-down-refresh.md
@@ -2,6 +2,13 @@
+使用:
+1. 首先pages.json里配置了页面可下拉刷新`"enablePullDownRefresh": true`
+2. 当用户下拉页面时触发页面生命周期`onPullDownRefresh`
+3. 在合适的时机(如联网刷新数据结束),调用本API`uni.stopPullDownRefresh()`,结束下拉刷新状态
+
+本API仅负责页面下拉刷新。如使用组件下拉刷新,另见scroll-view、list-view等组件的文档。
+
diff --git a/docs/uni-app-x/api/request.md b/docs/uni-app-x/api/request.md
index 0635d80a8..cdf85982c 100644
--- a/docs/uni-app-x/api/request.md
+++ b/docs/uni-app-x/api/request.md
@@ -12,4 +12,13 @@
-
\ No newline at end of file
+
+
+## 注意事项
+
+* request 接口内部通过[特殊方式读取了范型类型](../../uts/generics.md#使用限制),不支持传入动态的范型:比如将外层方法的普通范型参数传入 request。
+* 如果使用泛型先创建RequestOptions实例,再传入uni.request(),此时请务必确保request要显式指定泛型,例:
+ ```typescript
+ const options: RequestOptions = ...
+ uni.request(options)
+ ```
diff --git a/docs/uni-app-x/api/setnavigationbarcolor.md b/docs/uni-app-x/api/setnavigationbarcolor.md
index d87084121..d3c565df7 100644
--- a/docs/uni-app-x/api/setnavigationbarcolor.md
+++ b/docs/uni-app-x/api/setnavigationbarcolor.md
@@ -2,6 +2,8 @@
+即便pages.json里没有配置NavigationBar,如需修改状态栏的前景背景,也需要本API。
+
diff --git a/docs/uni-app-x/api/storage.md b/docs/uni-app-x/api/storage.md
index c1831bcbe..0a96a0dd4 100644
--- a/docs/uni-app-x/api/storage.md
+++ b/docs/uni-app-x/api/storage.md
@@ -1,3 +1,20 @@
+## key-value本地数据存储
+
+app、小程序、web,均提供了方便的key-value模式的本地数据存储,通过键值对的方式存取数据。
+
+uni-app的Storage在不同端的实现不同:
+- H5端为localStorage,浏览器限制5M大小,是缓存概念,可能会被清理
+- App端为原生storage,无大小限制,不是缓存,是持久化的
+- 各个小程序端为其自带的storage api,数据存储生命周期跟小程序本身一致,即除用户主动删除或超过一定时间被自动清理,否则数据都一直可用。
+ * 微信小程序单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB。
+ * 支付宝小程序单条数据转换成字符串后,字符串长度最大200*1024。同一个支付宝用户,同一个小程序缓存总上限为10MB。
+ * 百度小程序策略[详见](https://smartprogram.baidu.com/docs/develop/api/storage/save_process/)
+ * 抖音小程序策略[详见](https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/api/data-caching/tt-get-storage)
+
+**注意**
+- `uni-`、`uni_`、`dcloud-`、`dcloud_`为前缀的key,为系统保留关键前缀。如`uni_deviceId`、`uni_id_token`,请开发者为key命名时避开这些前缀。
+- 非App平台清空Storage会导致uni.getSystemInfo获取到的deviceId改变
+
## uni.setStorage(options) @setstorage
--
GitLab