diff --git a/docs/.vuepress/config/siderbar/uni-app.js b/docs/.vuepress/config/siderbar/uni-app.js
index 32a1d84700238d3431593393cf846fa44a448560..d550435d673a3eb870f949ff3cfe77b0ab1303ee 100644
--- a/docs/.vuepress/config/siderbar/uni-app.js
+++ b/docs/.vuepress/config/siderbar/uni-app.js
@@ -150,11 +150,6 @@ export default {
"state": 1,
"prefix": "群23"
},
- {
- "number": "672494800",
- "state": 1,
- "prefix": "群24"
- },
{
"number": "165297000",
"state": 1,
@@ -200,16 +195,21 @@ export default {
"state": 1,
"prefix": "群33"
},
+ {
+ "number": "530305531",
+ "state": 1,
+ "prefix": "群34"
+ },
{
"number": "713420817",
"state": 1,
"prefix": "群35"
},
{
- "number": "530305531",
+ "number": "672494800",
"state": 0,
- "prefix": "群34",
- joinQQGroupHref: 'https://qm.qq.com/cgi-bin/qm/qr?k=HNy1cvtf5NepYCRMIx67mvlH41gOWgbt&jump_from=webapi&authKey=kwow35JksO6eneIGJEdu1jSvZAK/JHT/6JMaYu/PNIMpBJmKRQD3ben8NYTva/lp'
+ "prefix": "群24",
+ joinQQGroupHref: 'https://qm.qq.com/cgi-bin/qm/qr?k=O2sgaZvsQZipcydB6XyITWel21gCEXy-&jump_from=webapi&authKey=n6PRYv4mtlBdW+JcVX9T2f0ITGE7G/kKJZSBndkqUSAtCipmRb2v5SZzMSfAXtaS'
}
]
}
diff --git a/docs/collocation/_sidebar.md b/docs/collocation/_sidebar.md
index e898f2ad8cb687fa5c31b82e276bc7f8bb993f87..314573abaadfc9572e4f293f0a7e32427b7c4e91 100644
--- a/docs/collocation/_sidebar.md
+++ b/docs/collocation/_sidebar.md
@@ -1,6 +1,8 @@
* [pages.json 页面路由](collocation/pages.md)
* [manifest.json 应用配置](collocation/manifest.md)
* [App 完整manifest.json](collocation/manifest-app.md)
+* [AndroidManifest.xml](tutorial/app-nativeresource-android.md)
+* [Info.plist](tutorial/app-nativeresource-ios.md)
* [package.json](collocation/package.md)
* [vue.config.js](collocation/vue-config.md)
* [vite.config.js](collocation/vite-config.md)
diff --git a/docs/release-note-alpha.md b/docs/release-note-alpha.md
index 77b225f92dec1d999d53bdc38b5893d52f6579b7..d11c68b7b64d013ad4000879d11a8357d7141b9d 100755
--- a/docs/release-note-alpha.md
+++ b/docs/release-note-alpha.md
@@ -1,3 +1,11 @@
+#### 3.8.4.20230602-alpha
+* 【uni-app】
+* 【重要】App-Android平台 修复 3.8.3引出的 在部分设备启动白屏,报`Uncaught SyntaxError: Invalid or unexpected token at __uniappview.html:2`错误的Bug 请所有使用3.8.3的开发者重新打包[详情](https://ask.dcloud.net.cn/question/170588)
+* App平台 修复 Vue2 项目在 nvue 页面 style 中使用 border-radius 样式解析不准确的Bug [详情](https://ask.dcloud.net.cn/question/168877)
+* 小程序平台 修复 Vue2 项目在模板中使用 JSON.stringify 等全局变量编译报错的Bug [详情](https://ask.dcloud.net.cn/question/170722)
+* 【App插件(含5+App和uni-app的App端)】
+* Android平台 修复 3.8.3引出的 输入框焦点切换可能引起页面显示异常的Bug [详情](https://ask.dcloud.net.cn/question/170689)
+
#### 3.8.3.20230523-alpha
* 【uni-app】
* App平台 修复 nvue 页面 switch 组件配置 type="checkbox" 后点击报错的Bug [详情](https://ask.dcloud.net.cn/question/168894)
diff --git a/docs/tutorial/page.md b/docs/tutorial/page.md
index f76243dfb9202e1a23d8661325852c52f24456e4..c7abed52f8f8de2ab6325e11c8ea1d2f4f28c481 100644
--- a/docs/tutorial/page.md
+++ b/docs/tutorial/page.md
@@ -35,9 +35,9 @@ uni-app项目中,一个页面就是一个符合`Vue SFC规范`的`.vue`文件
|函数名|说明|平台差异说明|最低版本|
|:-|:-|:-|:-|
|onInit|监听页面初始化,其参数同 onLoad 参数,为上个页面传递的数据,参数类型为 Object(用于页面传参),触发时机早于 onLoad|百度小程序|3.1.0+|
-|onLoad|监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参),参考[示例](/api/router?id=navigateto)|||
-|onShow|监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面|||
-|onReady|监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发|||
+|onLoad|监听页面加载,该钩子被调用时,响应式数据、计算属性、方法、侦听器、props、slots 已设置完成,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参),参考[示例](/api/router?id=navigateto)|||
+|onShow|监听页面显示,页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面|||
+|onReady|监听页面初次渲染完成,此时组件已挂载完成,DOM 树($el)已可用,注意如果渲染速度快,会在页面进入动画完成前触发|||
|onHide|监听页面隐藏|||
|onUnload|监听页面卸载|||
|onResize|监听窗口尺寸变化|App、微信小程序、快手小程序||
diff --git a/docs/tutorial/project.md b/docs/tutorial/project.md
index 9804667a26f30ae43c3ff5573bc74c42d245e9e6..fffc3b0d9e8f07c5ae596e9aade792694c4b5bd8 100644
--- a/docs/tutorial/project.md
+++ b/docs/tutorial/project.md
@@ -22,11 +22,13 @@
├─platforms 存放各平台专用页面的目录,详见
├─nativeplugins App原生语言插件 详见
├─nativeResources App端原生资源目录
-│ └─android Android原生资源目录 详见
+│ ├─android Android原生资源目录 详见
+| └─ios iOS原生资源目录 详见
├─hybrid App端存放本地html文件的目录,详见
├─wxcomponents 存放小程序组件的目录,详见
├─unpackage 非工程代码,一般存放运行或发行的编译结果
├─AndroidManifest.xml Android原生应用清单文件 详见
+├─Info.plist iOS原生应用配置文件 详见
├─main.js Vue初始化入口文件
├─App.vue 应用配置,用来配置App全局样式以及监听 应用生命周期
├─manifest.json 配置应用名称、appid、logo、版本等打包信息,详见
diff --git a/docs/tutorial/syntax-uts.md b/docs/tutorial/syntax-uts.md
index d2451845d6659ec4f54e4a157668fb7caf447afd..e77b95686aeffa1aa97c8202a2b7ea84c8d6d6f7 100644
--- a/docs/tutorial/syntax-uts.md
+++ b/docs/tutorial/syntax-uts.md
@@ -1253,6 +1253,36 @@ const test = new Test()
test.test()
```
+### 数据共享和复用
+
+可以使用 export 语句将变量或函数导出,以便其他模块可以访问和使用它们。导出的变量可以在模块内共享,并在其他模块中导入和复用。
+
+示例
+
+```ts
+/*-----export [global.uts]-----*/
+// 导出变量
+export let count = 1
+// 导出函数
+export function addCount() {
+ count++
+}
+```
+
+```ts
+// module1.uts
+import { count, addCount } from './global.uts'
+console.log(count) // 1
+addCount()
+console.log(count) // 2
+
+// module2.uts
+import { count, addCount } from './global.uts'
+console.log(count) // 2
+```
+
+- 如果只想在不同模块中复用变量而不共享其引用,可以使用函数包装变量来创建独立的作用域。
+
## 内置对象和API
uts 有一批内置对象。不管将 uts 编译为 js/kotlin/swfit,这些内置对象都可以跨平台使用。
diff --git a/docs/uni-stat-v2.md b/docs/uni-stat-v2.md
index 040af156306405e54a4d9a1641e6a485a8a5c0d1..7d852637b2c9d431f07753d9ab3aadb22ba6f4b0 100644
--- a/docs/uni-stat-v2.md
+++ b/docs/uni-stat-v2.md
@@ -1326,11 +1326,11 @@ uni统计支持sourcemap,可直观了解到底哪行代码写的有问题。[
## 常见问题
-**1. 启动uni统计后,何时可以查看报表数据?**
+### 1. 启动uni统计后,何时可以查看报表数据?
答:与定时任务配置配置有关,默认`统计首页`、`今日概况`等数据为1小时后可见,其余数据为次日可见。要想详细了解各类型数据统计时间请参考[定时任务配置说明](#定时任务配置说明)。
-**2. 已经开启统计,定时任务配置也正常,但是后台还是看不到数据**
+### 2. 已经开启统计,定时任务配置也正常,但是后台还是看不到数据
答:
- 确保分清楚,业务App 和 admin 是2个工程。业务App是采集端,admin是报表端
@@ -1342,24 +1342,60 @@ uni统计支持sourcemap,可直观了解到底哪行代码写的有问题。[
- 在[uniCloud web控制台](https://unicloud.dcloud.net.cn/)的云函数日志中,可以看到`uni-stat-cron`云函数有定时执行日志,且日志显示执行成功;如日志中显示`Not Found the cofnig file`,则查看下方第6个问题;
- 如需看`uni-admin`这个管理端的统计数据,才需要在`uni-admin`工程的`manifest`里配置`uni统计2.0`并再次发行。再次强调不要搞混业务App和admin
-**3. 如何判断是否需要配置分钟级定时任务?**
+### 3. 如何判断是否需要配置分钟级定时任务?
答:一般情况下是不需要自行配置的,但如果`定时任务云函数(uni-stat-cron)`出现运行超时的情况时,就要考虑去开启分钟级定时任务了。
-**4. 如何创建或授权`uni统计`运营管理员账号**
+### 4. 如何创建或授权`uni统计`运营管理员账号
答:参考[uni-admin 给系统创建多个登录账户并设置不同的权限](https://uniapp.dcloud.net.cn/uniCloud/admin.html#mutiladmin)
-**5. 为什么总设备数比活跃设备数少?**
+### 5. 为什么总设备数比活跃设备数少?
答:总设备数计算公式为:总设备数 = 原设备数 + 新设备数,而判断一个设备是否为新设备的依据是在客户端SDK中是否已储存该设备上次访问某一应用的时间,未存储则认为是该应用的新设备(即lvts=0时为新设备,lvts>0时为老设备)。 因此如果之前某一设备已经访问过某一应用,就算此时清除数据库中的数据,由于已经在客户端SDK中储存该设备上次访问应用的时间(即此时lvts > 0),所以该设备也不会再被认为是该应用的新设备从而不会再被计算进该应用的总设备数中而只会计算进活跃设备数中,此时可能就会出现总设备数小于活跃设备数的情况。
-**6. uni-stat-cron运行日志显示 Not Found the cofnig file**
+### 6. uni-stat-cron运行日志显示 Not Found the cofnig file
业务App 和 admin 是2个工程。业务App是采集端,admin是报表端;这两个项目均包含`uni-config-center`;如果这两个项目关联(复用)相同的服务空间时,很容易出现`uni-config-center`的互相覆盖问题;此时建议单点维护,方案有2种:
- 以业务App为主:将`uni-admin`项目中`uni-config-center` 下面的`uni-stat`文件夹,复制到业务App项目下的`uni-config-center`目录下,然后重新上传业务App项目下的`uni-config-center`公共模块即可。
- 以`uni-admin`为主:将业务App项目下的`uni-config-center`,手动合并配置项到`uni-admin`项目下的`uni-config-center`中(注意:是手动合并配置项,不要整体覆盖文件),然后重新上传`uni-admin`项目下的`uni-config-center`公共模块即可。
+### 7. 子账号需要赋予哪些表的权限才能正常查看uni统计@permission
+
+首先分三步骤
+
+**第一步:添加用户角色权限**
+
+1. 去权限管理,添加一个权限id为:`READ_UNI_STAT` 的权限
+
+2. 去角色管理,添加一个角色id为:`READ_UNI_STAT` 的角色
+
+3. 去用户管理,赋予子账号角色 `READ_UNI_STAT` 角色
+
+**第二步:给相关的表设置read权限**
+
+涉及表如下:
+
+1. 所有 `uni-stat-` 开头的表
+2. uni-pay-orders
+3. opendb-app-list
+4. opendb-app-versions
+
+需要赋予上面的表的 `read` 权限
+
+将上面的表的 `read` 权限全部设置为
+
+```js
+"permission": {
+ "read": "'READ_UNI_STAT' in auth.permission",
+ "create": false,
+ "update": false,
+ "delete": false
+},
+```
+
+**第三步:前往菜单管理,对每一个uni统计的页面(包含子页面)设置下权限 `READ_UNI_STAT`(菜单只有拥有对应权限才会显示)**
+
## 参考资料
不掌握如下文档,很难对 `uni统计2.0` 吃透和做二次开发
diff --git a/docs/uniCloud/admin.md b/docs/uniCloud/admin.md
index 90d01ed8436db3083168041b80aba2b52b7151b6..135b0b7d6a8c4181e65d465296e4c06a441d614c 100644
--- a/docs/uniCloud/admin.md
+++ b/docs/uniCloud/admin.md
@@ -788,7 +788,17 @@ uni-admin框架运行的基础路径默认为`/admin/`,部署到前端网页
用户登录逻辑:登录时系统检测没有菜单会提示“暂无权限登录”,需要给新账号绑定角色,角色有菜单方可登录
-### admin账号密码忘记了,如何重置admin账号密码?
+### admin账号密码忘记了,如何重置admin账号密码?@resetpassword
+
+有两个方案
+
+**方案一:**
+
+1. 去数据库把原来的admin账号的role角色改成空数组(这样你就可以再次注册admin2账号)
+2. 注册admin2账号,并用admin2账号登录,去用户管理把原先的admin账号的密码重置成123456。
+3. 此时就可以登录原来的admin账号了,最后去数据库把admin2账号删了。
+
+**方案二:**
1. 使用uni-id或uni-id-co注册一个普通的账号,比如账户名:test 密码:123456
2. 前往uniCloud web控制台 - 云数据库 - 打开uni-id-users表 - 找到刚注册的test账号,复制其password字段的值,修改admin账号的password跟test账号的password一致。
diff --git a/docs/uniCloud/publish.md b/docs/uniCloud/publish.md
index 2a908807ac103358389d0392fb6ec49f598d50df..fe481fcbd306489c7885da879149fb9c355d4b38 100644
--- a/docs/uniCloud/publish.md
+++ b/docs/uniCloud/publish.md
@@ -53,7 +53,7 @@ HBuilderX内使用运行菜单运行到小程序时会连接本地调试服务
请务必在HBuilderX内使用【发行】菜单打包小程序,【运行】菜单打包的代码只能用于本地调试,【发行】菜单打包的代码才能发布体验版和正式版。
-如果域名白名单提示 `127.0.0.1` 这个ip没有加入白名单,那代表你点的就是【运行】菜单发布的体验版,请务必点【发行】发布小程序。
+如果域名白名单提示 `127.0.0.1` 这个ip没有加入白名单,那代表你点的就是【运行】菜单发布的体验版,请务必点【发行】发布小程序。**uni-app项目发行与运行输出的目录不同,请注意不要选错了**
![](https://web-assets.dcloud.net.cn/unidoc/zh/uni-admin/391.png)