diff --git a/README.md b/README.md
index 6b8ff4a5ab94f47f086466d864be0452e08c3832..1eaa8e6f7949e5b64fdd39c2ccf03e6e584e664f 100644
--- a/README.md
+++ b/README.md
@@ -87,27 +87,6 @@
|流量(GB)|0.18 |
|售价(元/月)#{colspan=2} |5 |
```
-
-14. 表格支持行展开
- md 书写格式
- ```md
- | |原生语言插件 |uts插件|
- |:------ |:------- |:--------|
- |开发语言 |java/oc |uts|
- |开发环境 |Android Studio/XCode |[HBuilderX](https://www.baidu.com)|
- ->|第一列|第二列 |第三列 |
- ->|:------ |:-------: |-------: |
- ->|左对齐 |[居中](https://www.baidu.com)|右对齐|
- |打包方式 |外挂aar 等产出物 |编译时生成原生代码|
- |js层调用方式 |uni.requireNativePlugin() |普通的js函数/对象,可以直接 import,支持摇树优化|
- ->|第一列|第二列 |
- ->|:------ |:------- |
- ->|第一列内容 |[HBuilderX](https://www.baidu.com)|
- |支持项目类型 |uni-app |uni-app和uni-app x|
- ```
- 表现为:
- ![](https://qiniudcdn.qnqcdn.net/web-ext-storage.dcloud.net.cn/doc/subtable.png)
-
## 文档 Algolia 使用限额
Included Quota:
- Records: 1,000,000
diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js
index ff351229df85d895c2de49cc24448f378dd2d77e..26dcbcda15934a24fa0bc3048079780dd605b075 100644
--- a/docs/.vuepress/config.js
+++ b/docs/.vuepress/config.js
@@ -109,9 +109,6 @@ const config = {
.end()
.plugin('markdown-it-raw-table')
.use(require('markdown-it-raw-table'))
- .end()
- .plugin('subtable')
- .use(require('./markdown/markdown-it-subtable').markdownIt, [{ flags: ['->'] }])
}
},
chainWebpack (config, isServer) {
diff --git a/docs/.vuepress/config/siderbar/uni-app.js b/docs/.vuepress/config/siderbar/uni-app.js
index 838013dba484eabc311403d5f6508f76226a3282..931757c1f08cfb2e45e449922719eaebc78b9ef5 100644
--- a/docs/.vuepress/config/siderbar/uni-app.js
+++ b/docs/.vuepress/config/siderbar/uni-app.js
@@ -198,6 +198,13 @@ export default {
state: 1,
prefix: '群27',
},
+ {
+ number: '166188776',
+ state: 1,
+ prefix: '群28',
+ joinQQGroupHref:
+ 'https://qm.qq.com/cgi-bin/qm/qr?k=jSmA3SLhDdILrUw3EMpN4iWSKgEuSLVW&jump_from=webapi&authKey=iVG0LhlB2TNKwrAf6CChQKeRddFhjjgbXqBgswaLK0UorBqZNKvu4q5XGwXThpsn',
+ },
{
number: '202965481',
state: 1,
@@ -232,13 +239,6 @@ export default {
number: '713420817',
state: 1,
prefix: '群35',
- },
- {
- number: '166188776',
- state: 0,
- prefix: '群28',
- joinQQGroupHref:
- 'https://qm.qq.com/cgi-bin/qm/qr?k=jSmA3SLhDdILrUw3EMpN4iWSKgEuSLVW&jump_from=webapi&authKey=iVG0LhlB2TNKwrAf6CChQKeRddFhjjgbXqBgswaLK0UorBqZNKvu4q5XGwXThpsn',
- },
+ }
],
};
diff --git a/docs/.vuepress/markdown/markdown-it-subtable.js b/docs/.vuepress/markdown/markdown-it-subtable.js
deleted file mode 100644
index 50a0332dec9e69e57291d23feacffc549a134f5e..0000000000000000000000000000000000000000
--- a/docs/.vuepress/markdown/markdown-it-subtable.js
+++ /dev/null
@@ -1,146 +0,0 @@
-function normalizeMD (md) {
- if (typeof md === 'string') {
- return md
- .replace(/(? {
- if (Array.isArray(tokenIndex) && tokenIndex.length > 2) {
- const tableOpenIndex = tokenIndex.shift();
- const tableCloseIndex = tokenIndex.pop();
- let deleteOffset = 0;
-
- tokenIndex.forEach(subtableIndexes => {
- const subtableOpenIndex = subtableIndexes.shift() + deleteOffset;
- const subtableColumnCount = (subtableIndexes[0] + deleteOffset - subtableOpenIndex - 2) / 3 - 1;
- const subtableCloseIndex = subtableIndexes.pop() + deleteOffset + subtableColumnCount * 3;
- const subtableTokens = tokens.slice(subtableOpenIndex - 1, subtableCloseIndex + 1);
-
- // 2 table token 新行开始时固定的 tr_open td_open 数量
- // 3 每个 inline 都会伴随一个 td_close、td_open(行最后一列 inline 会伴随 td_close tr_close)
- // 1 为 flag ->(标识符) 的列,需要去掉
- let tableColumnCount = 0;
- for (let i = 0; i < tableCloseIndex; i++) {
- const token = tokens[i];
- if (i < subtableOpenIndex) {
- if (token.type === 'th_open') {
- tableColumnCount++;
- } else if (token.type === 'thead_close') {
- break;
- }
- }
- }
-
- let subtableMD = subtableTokens
- .map(token => {
- if (token.type === 'inline' && !flags.includes(token.content)) {
- return normalizeMD(token.content);
- } else if (token.type === 'tr_close') {
- return '\n';
- }
- })
- .filter(Boolean);
- const subtableLevel = subtableTokens[0].level;
- const newTokens = md.parse(`|${subtableMD.join('|')}|`);
- newTokens.forEach(token => {
- token.content = ''; // 和 children 内容重复
- token.level = token.level + subtableLevel;
- });
- newTokens[0].attrJoin('style', 'overflow-x: visible;margin: auto;');
- const childrenTableTokenIndex = subtableOpenIndex - 2;
- const subtablePrevTrOpenIndex = childrenTableTokenIndex - tableColumnCount * 3 - 2;
- tokens[tableOpenIndex].attrJoin('class', 'have-children-table'); // table
- tokens[subtablePrevTrOpenIndex].attrJoin('class', 'have-children-tr'); // table tr_open
-
- // table td_open
- const haveChildrenTrTdToken = tokens[subtablePrevTrOpenIndex + 1];
- haveChildrenTrTdToken.attrJoin('class', 'have-children-tr-td');
- haveChildrenTrTdToken.attrJoin('style', ';text-wrap: nowrap');
-
- tokens[childrenTableTokenIndex].attrJoin('class', 'children-table'); // subtable tr_open
- tokens[childrenTableTokenIndex].attrJoin('hidden', ''); // subtable tr_open
-
- tokens[subtableOpenIndex - 1].attrJoin('colspan', tableColumnCount); // subtable td_open
- const deleteCount = subtableCloseIndex - subtableOpenIndex + 1;
- tokens.splice(subtableOpenIndex, deleteCount, ...newTokens);
- deleteOffset = deleteOffset + newTokens.length - deleteCount;
- });
- }
- });
- }
-}
-
-function process(md, tokens, flags = ['->']) {
- const subtableMinTokenCount = 3;
- if (
- Array.isArray(tokens) &&
- tokens.length &&
- tokens.some(token => token.content.includes('->') && token.type === 'inline')
- ) {
- const tableOpenTokenIndex = tokens.findIndex(token => token.type === 'table_open');
- if (tableOpenTokenIndex > -1) {
- /**
- * [
- * table_open index,
- * [] // subtable indexes,
- * table_close index
- * ]
- */
- let tableTokensIndexes = [[]];
- let tableIndex = 0;
- let subtableIndex = 1;
- tokens.forEach((token, index) => {
- if (token.type === 'table_open' && tableTokensIndexes[tableIndex].length === 0) {
- tableTokensIndexes[tableIndex].push(index);
- }
- if (tableTokensIndexes[tableIndex] && typeof tableTokensIndexes[tableIndex][0] !== 'undefined') {
- if (token.type === 'inline') {
- if (flags.find(flag => new RegExp(`^\\s*${flag}\\s*$`).test(token.content))) {
- (
- tableTokensIndexes[tableIndex][subtableIndex] || (tableTokensIndexes[tableIndex][subtableIndex] = [])
- ).push(index);
- } else if (tokens[index - 2].type === 'tr_open') {
- tableTokensIndexes[tableIndex][++subtableIndex] = [];
- }
- }
- }
- if (token.type === 'table_close') {
- subtableIndex = 1;
- tableTokensIndexes[tableIndex].push(index);
- tableTokensIndexes[++tableIndex] = [];
- }
- });
- tableTokensIndexes.forEach((subtableTokensIndex, index) => {
- tableTokensIndexes[index] = subtableTokensIndex.filter(
- i => typeof i === 'number' || (Array.isArray(i) && i.length >= subtableMinTokenCount)
- );
- });
- tableTokensIndexes = tableTokensIndexes.filter(i => i.length);
- if (tableTokensIndexes.length) {
- resolveSubtable(md, tokens, tableTokensIndexes, flags);
- }
- }
- }
-}
-
-module.exports = {
- process,
- markdownIt: function subTablePlugin(md, { flags = ['->'] } = {}) {
- md.core.ruler.after(
- 'inline',
- 'subtable',
- (state, startLine, endLine, silent) => {
- process(md, state.tokens, flags);
- },
- {
- alt: ['paragraph', 'reference'],
- }
- );
- },
-};
diff --git a/docs/api/plugins/voice.md b/docs/api/plugins/voice.md
index 4d009a02274401011b89d62bb2b3179d2d0c6fe2..a7f36da9be4a96c2a8f4e4d7eb08398f5b4f474c 100644
--- a/docs/api/plugins/voice.md
+++ b/docs/api/plugins/voice.md
@@ -1,12 +1,12 @@
-### voice
-
-voice 包括语言识别和语音朗读两部分。
-
-仅百度小程序平台、App平台支持,各平台开发方式暂未统一,使用时需注意用[条件编译](https://uniapp.dcloud.io/platform)调用不同平台的代码。
-
-百度小程序平台支持语音识别,参考:[规范详情](https://smartprogram.baidu.com/docs/develop/api/ai_voice/)
-
-App 平台实现参考:
-
-- 语音识别:支持科大讯飞语音识别和百度语音识别,云打包的话需要在manifest中勾选模块和App SDK配置,开发规范见:[https://www.html5plus.org/doc/zh_cn/speech.html](https://www.html5plus.org/doc/zh_cn/speech.html),配置文档及讯飞百度的差别见:[https://ask.dcloud.net.cn/article/35059](https://ask.dcloud.net.cn/article/35059)
-- 语音朗读:调用科大讯飞进行语音合成、tts朗读,参考[https://ask.dcloud.net.cn/article/1081](https://ask.dcloud.net.cn/article/1081)
+### voice
+
+voice 包括语言识别和语音朗读两部分。
+
+仅百度小程序平台、App平台支持,各平台开发方式暂未统一,使用时需注意用[条件编译](https://uniapp.dcloud.io/platform)调用不同平台的代码。
+
+百度小程序平台支持语音识别,参考:[规范详情](https://smartprogram.baidu.com/docs/develop/api/ai_voice/)
+
+App 平台实现参考:
+
+- 语音识别:支持百度语音识别,云打包的话需要在manifest中勾选模块和App SDK配置,开发规范见:[https://www.html5plus.org/doc/zh_cn/speech.html](https://www.html5plus.org/doc/zh_cn/speech.html),配置文档及讯飞百度的差别见:[https://ask.dcloud.net.cn/article/35059](https://ask.dcloud.net.cn/article/35059)
+- 语音朗读:调用科大讯飞进行语音合成、tts朗读,参考[https://ask.dcloud.net.cn/article/1081](https://ask.dcloud.net.cn/article/1081)
diff --git a/docs/api/system/create-request-permission-listener.md b/docs/api/system/create-request-permission-listener.md
index 5ad53db9472aaf4955ad4bfd431e1c8a94c435c5..61bd9bdd2c587749b1c2918e4072406dcad393a9 100644
--- a/docs/api/system/create-request-permission-listener.md
+++ b/docs/api/system/create-request-permission-listener.md
@@ -101,4 +101,4 @@ HBuilderX (4.0+) android 平台支持
- 如果权限已经申请并且允许之后,`onConfirm`不会触发。
- 如果同时申请多个权限时,`onComplete`可能会触发多次。
- 权限列表参考:[https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-android.html#permissions](https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-android.html#permissions)
-- 本API仅提供了权限申请监听,未提供全局弹窗
+- 全局监听权限申请可参考插件[uni-registerRequestPermissionTips](https://ext.dcloud.net.cn/plugin?name=uni-registerRequestPermissionTips)。
diff --git a/docs/release-note-alpha.md b/docs/release-note-alpha.md
index 333830f44d4c7b564f6fbf2ecb1e4fb983387886..32c19450c27fd79aa44c754fdbd6ae206a0cb4c3 100755
--- a/docs/release-note-alpha.md
+++ b/docs/release-note-alpha.md
@@ -1,3 +1,66 @@
+#### 4.02.2024030621-alpha
+* 【uni-app 插件】
+ + App平台 修复 Vue2 Cli 项目 nvue 页面编译报错的Bug [详情](https://ask.dcloud.net.cn/question/186784)
+ + App-Android平台 新增 API uni.getChannelManager,获取通知渠道管理器 [详情](https://uniapp.dcloud.net.cn/api/plugins/push.html#getChannelManager)
+ + App-Android平台 修复 首次安装调用 uni.scanCode 可能会出现黑屏的Bug [详情](https://ask.dcloud.net.cn/question/185913)
+ + Web平台 修复 Vue3 项目自动化测试 element.input 方法报错的Bug [详情](https://ask.dcloud.net.cn/question/184815)
+ + 抖音小程序平台 新增 组件支持 virtualHost 配置 [详情](https://uniapp.dcloud.net.cn/tutorial/vue3-api.html#其他配置)
+ + 抖音小程序平台 修复 Vue3 项目使用插件时属性丢失的Bug [详情](https://ask.dcloud.net.cn/question/185513)
+ + 抖音小程序平台 修复 Vue2 项目使用国际化报错的Bug [详情](https://ask.dcloud.net.cn/question/161008)
+* 【uni-app x 插件】
+ + 新增 API uni.rpx2px [详情](https://doc.dcloud.net.cn/uni-app-x/api/rpx2px.html)
+ + 调整 pages.json 中配置的页面路径大小写敏感
+ + 修复 UniElement tagName、nodeName获取内置组件的标签与组件名不一致的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=766)
+ + 修复 vue $parent未跳过内置组件的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=773)
+ + Web平台 新增 组件 list-view、list-item组件 [详情](https://doc.dcloud.net.cn/uni-app-x/component/list-view.html)
+ + Web平台 新增 组件 sticky-section、sticky-header组件 [详情](https://doc.dcloud.net.cn/uni-app-x/component/sticky.html)
+ + Web平台 修复 部分场景下类型推断时未将对象字面量作为UTSJSONObject使用的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=819)
+ + Web平台 修复 类型字面量内带有any[]时无法正确创建实例的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=767)
+ + Web平台 修复 非全局声明的type在变量声明为此类型时不会自动创建实例的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=782)
+ + Web平台 修复 vue $forceUpdate未能更新内置组件插槽内容的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=776)
+ + Web平台 修复 使用热更新uts文件内新导出的type时报找不到导出的type的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=823)
+ + Web平台 修复 API request、uploadFile、downloadFile接口timeout参数传null时会直接超时的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=805)
+ + App-Android平台 新增 API uni.requestPayment,支持支付宝支付 [详情](https://doc.dcloud.net.cn/uni-app-x/api/request-payment.html)
+ + App-Android平台 修复 组件 button 渲染宽高与Web端不一致的问题 [详情](https://doc.dcloud.net.cn/uni-app-x/component/button.html)
+ + App-Android平台 修复 组件 text 无文本内容时组件宽度不正确的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=777)
+ + App-Android平台 修复 组件 text 子组件设置 background-color 样式无效的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=276)
+ + App-Android平台 修复 组件 text 子组件无法修改文本内容的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=562)
+ + App-Android平台 修复 组件 image 请求网络图片无法共享cookie的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=820)
+ + App-Android平台 修复 组件 list-item 动态调整宽高不生效的Bug [详情](https://ask.dcloud.net.cn/question/185517)
+ + App-Android平台 修复 组件 list-view 部分场景修改refresher-triggered属性值域可能不生效的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=796)
+ + App-Android平台 修复 组件 list-view 部分场景删除插槽子元素报错Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=769)
+ + App-Android平台 修复 CSS 4.0版本引出的 position 属性设置为 fixed 后 z-index 属性无效的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=726)
+ + App-Android平台 修复 tabBar 配置 pagePath 有误时点击 tab 切换崩溃的Bug[详情](https://issues.dcloud.net.cn/pages/issues/detail?id=779)
+ + App-Android平台 修复 使用 UTSAndroid.getJavaClass 获取导入的类时可能编译报错的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=809)
+ + App-Android平台 优化 type类型响应式对象的构造方式,避免使用反射,优化性能
+ + App-Android平台 修复 关联其他项目的服务空间并使用其中的云对象时报错的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=817)
+ + App-Android平台 修复 unicloud-db组件,使用 setup 语法,作用域插槽中无法使用data的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=761)
+ + App-Android平台 修复 云对象返回数字错误码时报错的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=840)
+ + App-Android平台 更新 云端打包环境 compileSdkVersion 为 34
+* 【uts插件】
+ + Android平台 新增 `typeof` 操作符支持平台专有字符类型 `Char` [详情](https://doc.dcloud.net.cn/uni-app-x/uts/operator.html#typeof)
+ + App-Android平台 修复 局部定义 class 时,构造函数使用 super 报错的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=802)
+ + App-Android平台 新增 interface.uts 文件支持 export declare 语法 [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=744)
+ + App-Android平台 修复 import * as Types from 'xxx' 导入 type 类型编译报错的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=696)
+ + App-iOS平台 新增 @UTSiOS.keyword('fileprivate') 注解,用于解决自定义swift类,属性的访问控制
+* 【App插件(含5+App和uni-app的App端)】
+ + Android平台 更新 uni-AD 快手广告SDK为 3.3.61 版;Sigmob广告联盟SDK为 4.15.1 版;百度百青藤广告SDK为 9.34 版
+ + Android平台 更新 UniPush 谷歌渠道 使用的个推 SDK 为 4.4.3.8 版,解决可能无法通过 GooglePlay 审核的问题 [详情](https://ask.dcloud.net.cn/question/186384)
+ + Android平台 更新 支付模块 Paypal SDK 为 1.2.1 版,解决谷歌商店审核失败的问题
+ + iOS平台 修复 应用沙盒 tmp 缓存目录没有及时清理的Bug [详情](https://ask.dcloud.net.cn/question/186250)
+ + iOS平台 修复 应用内存占用过高时系统终止 WKWebview 进程导致页面白屏无法恢复的Bug [详情](https://ask.dcloud.net.cn/question/186341)
+ + iOS平台 更新 云端打包环境 XCode 为 15.2 版、iOS SDK 为 17.2 版
+* 【uniCloud】
+ + 新增 `uniCloud.httpProxyForEip.get` API支持 headers 字段
+ + 修复 上传云函数时安装依赖失败后仍然会上传云函数的Bug
+ + 修复 上传公共模块时不会剔除 node_modules 目录的Bug
+ + 修复 本地运行时无法使用地理位置查询/索引API的Bug
+ + 修复 同时存在支付宝小程序云、阿里云、腾讯云空间时,虚拟目录无法正确显示的Bug
+ + 修复 修复项目关闭后,再次打开云空间未显示关联服务空间的Bug [详情](https://ask.dcloud.net.cn/question/186741)
+ + 修复 关联其他项目运行时unicloud目录识别错误的Bug
+ + 修复 未登录状态下点击关联服务空间无响应的Bug
+ + 调整 阿里云 url化请求体大小限制由1MB调整为2MB,响应体大小限制由1MB调整为2MB
+
#### 4.01.2024020211-alpha
* 【uni-app 插件】
+ Web平台 修复 Vue3 项目 ssr 运行报错的Bug [详情](https://ask.dcloud.net.cn/question/185205)
diff --git a/docs/tutorial/app-push-unipush.md b/docs/tutorial/app-push-unipush.md
index 04442b5b6df926a45439fa37e13aad5ac589bc9e..3a6a02686233b326416c5d1099c5160b7127da4e 100644
--- a/docs/tutorial/app-push-unipush.md
+++ b/docs/tutorial/app-push-unipush.md
@@ -73,18 +73,10 @@
点击“Project settings”,进入项目设置页面
![](https://img.cdn.aliyun.dcloud.net.cn/client/ask/unipush/fcm/settings.png)
-切换到“Cloud Messaging”项,获取“Server key”,**保存Server key后面需要使用**
+切换到`服务账号`项,点击`生成新的私钥`,**保存私钥json文件到本地,后面需要使用**
-由于新版`Firebase Cloud Messaging API (V1)`不提供`Server key`, 所以需要手动开启旧版 `Cloud Messaging API` 。
-![](https://native-res.dcloud.net.cn/images/uniapp/push/firebase/firebase_android_setup_get_server_key.png)
+![](https://web-ext-storage.dcloud.net.cn/native/unipush/img_vendor_fcm0.jpg)
-跳转到Api管理页面启动`Cloud Messaging API`
-
-![](https://native-res.dcloud.net.cn/images/uniapp/push/firebase/firebase_android_open_old_api.png)
-
-启动`Cloud Messaging API`后即可得到`Server key`
-
-![](https://native-res.dcloud.net.cn/images/uniapp/push/firebase/firebase_android_server_key.png)
##### UniPush后台配置FCM参数
配置FCM需先开通UniPush,如应用未开通UniPush请先开通。
@@ -92,8 +84,8 @@
![](https://img.cdn.aliyun.dcloud.net.cn/client/ask/unipush/fcm/hx_unipush.png)
打开DCloud的开发者中心后台进入应用列表,点击应用名称进入详情,点击上方“uniPush”选项卡,点击“厂商推送设置”按钮进入配置UniPush的FCM参数
-[attach]94813[/attach]
+![](https://web-ext-storage.dcloud.net.cn/native/unipush/img_vendor_fcm1.jpg)
保存成功后在HBuilderX中重新提交云端打包,并在“App-云打包”界面选择google play 渠道包:
diff --git a/docs/tutorial/beian.md b/docs/tutorial/beian.md
index 338ad87a58bc0dec8f58dce1d636a72434c59393..950722c1538cb45115fc63ccabc420208eacca35 100644
--- a/docs/tutorial/beian.md
+++ b/docs/tutorial/beian.md
@@ -37,18 +37,14 @@
**参考资料:**
- [微信小程序备案操作指引](https://developers.weixin.qq.com/miniprogram/product/record/record_guidelines.html)
-- [支付宝小程序备案操作指引](https://opendocs.alipay.com/mini/0adg3d)
+- [支付宝小程序备案操作指引](https://opendocs.alipay.com/mini/0apy22?pathHash=2cd5467d)
- [抖音小程序ICP备案指引](https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/operation/settle/ICPFiling/ICPintroduce)
- [百度小程序备案指引](https://smartprogram.baidu.com/docs/introduction/register_filings/)
- [京东小程序备案流程](https://mp-docs.jd.com/doc/operation/beian/2300)
+- [快手小程序备案流程](https://mp.kuaishou.com/docs/operate/specification/icp/guide.html)
+## FAQ
-
-
-
-
-
-
-
-
+- Q:APP备案如何获取公钥、签名MD5等特征信息?
+- A:参考[App特征信息的获取方法](https://help.aliyun.com/zh/icp-filing/fill-in-app-feature-information)或使用[App解析包工具](https://www.yimenapp.com/developer/cert_analyse_upload.cshtml)。
\ No newline at end of file
diff --git a/docs/tutorial/run/uts-development-android.md b/docs/tutorial/run/uts-development-android.md
index 3c40d7f5723f77bda7e25b440ad54b7d13abb882..ab1d3fce174c2c85e574c7148ea3cb7378f319bf 100644
--- a/docs/tutorial/run/uts-development-android.md
+++ b/docs/tutorial/run/uts-development-android.md
@@ -1,74 +1,96 @@
-# Android UTS扩展开发
+# Android UTS 扩展开发
> 版本要求: HBuilderX 3.6.9+
-HBuilderX 3.6.9+, 新增 uts插件 Android平台 真机运行支持三方 Gradle 仓储。
+HBuilderX 3.6.9+, 新增 uts 插件 Android 平台 真机运行支持三方 Gradle 仓储。
-运行带有uts插件的项目到Android设备,如果您遇到以下提示,请配置[运行环境](#环境配置)
+运行带有 uts 插件的项目到 Android 设备,如果您遇到以下提示,请配置[运行环境](#环境配置)
-## uts扩展插件
+## uts 扩展插件
-当您运行带有uts插件的项目到Android设备时,会自动安装【uts开发扩展 - Android】插件,请务必安装。具体如下:
+当您运行带有 uts 插件的项目到 Android 设备时,会自动安装【uts 开发扩展 - Android】插件,请务必安装。具体如下:
## 环境配置
-> 下载插件后打开 HBuilderX到 【设置 - 插件配置】:如图
-![image](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/%E9%85%8D%E7%BD%AE.png)
+> 下载插件后打开 HBuilderX 到 【设置 - 插件配置】:如图
+
+![image](https://web-ext-storage.dcloud.net.cn/hx/uts-android-2.png)
#### 上面的截图展示了以下配置:
-##### 配置Gradle
+##### 配置 Gradle
+
+1. 点击图标 1 的下载地址进入下载页面。如图所示,点击红圈部分下载工具包。
+
+![image](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/gradle.png)
+
+2. 将步骤 1 下载的内容解压后,找到 bin 目录下的执行脚本,填入图标 2 处。
+
+**注意** mac 为`%解压路径%/bin/gradle`;window 为`%解压路径%\bin\gradle.bat`。
+
+##### 配置 Gradle JDK
+
+- 不同版本 Gradle 依赖不同版本的 JDK 。HbuilderX 内置的 JDK 为 11,仅支持 Gradle8.0 以下。如配置 Gradle 为 8.0 及以上版本需要手动下载并配置 JDK 路径。配置方式如下
+
+1. 点击图标 3 的下载地址进入下载页面,选择所需要的版本。(如本地已安装 JDK 可跳过此步骤)
-1. 点击图标1的下载地址进入下载页面。如图所示,点击红圈部分下载工具包。
+2. 将步骤 1 下载的内容解压后,找到 Home 目录,填入图标 4 处。
- ![image](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/gradle.png)
+**注意**
-2. 将步骤1下载的内容解压后,找到bin目录下的执行脚本,填入图标3处。
+- HBuilderX 4.02+支持此配置项
+- Gradle8.0 最低要求 JDK 版本为 17。更多版本要求[参考文档](https://developer.android.google.cn/build/releases/past-releases?hl=zh-cn)
-**注意** mac为`%解压路径%/bin/gradle`;window为`%解压路径%\bin\gradle.bat`。
+##### 配置 SDK
-##### 配置SDK
+点击图标 5 的下载地址进入安卓官网,提供如下两种形式。
-点击图标2的下载地址进入安卓官网,提供如下两种形式。
+###### ◇ 下载 Android Studio
-###### ◇ 下载Android Studio
-1. 如图所示,根据平台下载Android Studio
+1. 如图所示,根据平台下载 Android Studio
![image](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/sdk-2.png)
-2. 安装后获取Android Studio中sdk的路径地址填入到图标4处。
+2. 安装后获取 Android Studio 中 sdk 的路径地址填入图标 6 处。
+
+**注意**
+
+- 默认路径 mac 为`/Users/用户名/Library/Android/sdk`;window 为`C:\Users\用户名\AppData\Local\Android\Sdk`
-**注意** 默认路径 mac为`/Users/用户名/Library/Android/sdk`;window为`C:\Users\用户名\AppData\Local\Android\Sdk`
+###### ◇ 如不需要安装 Android Studio 可通过下载 Command line tools only
-###### ◇ 如不需要安装Android Studio可通过下载Command line tools only
-1. 如图所示,根据平台下载Command line tools only。
+1. 如图所示,根据平台下载 Command line tools only。
![image](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/sdk.png)
-2. 下载解压后通过`%解压目录%/bin/sdkmanager脚本安装build-tools和platforms
+2. 下载解压后通过`%解压目录%/bin/sdkmanager 脚本安装 build-tools 和 platforms
+
```
sdkmanager --sdk_root=%sdk路径% --install "build-tools;30.0.0"
sdkmanager --sdk_root=%sdk路径% --install "platforms;android-30"
```
-4. 将`%sdk路径%`配置到图标4处。
+4. 将`%sdk路径%`填入图标 6 处。
+
+5. [sdkmanager 使用文档](https://developer.android.google.cn/studio/command-line/sdkmanager)
-5. [sdkmanager使用文档](https://developer.android.google.cn/studio/command-line/sdkmanager)
+**注意**
-**注意** 下载Android Studio和下载Command line tools only选择一种形式下载sdk即可。
+- 下载 Android Studio 和下载 Command line tools only 选择一种形式下载 sdk 即可。
##### 配置示例
+
配置后如下图(根据本地目录结构有所不同)
- ![image](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/%E9%85%8D%E7%BD%AE%E5%AE%8C%E6%88%90.png)
+![image](https://web-ext-storage.dcloud.net.cn/hx/uts-android-1.png)
**注意**
- 如果环境已存在可以直接设置本地的工具包路径
-- 此插件依赖sdk目录下build-tools版本不低于30.0.0
-- 此插件依赖sdk目录下platforms版本不低于android-30
+- 此插件依赖 sdk 目录下 build-tools 版本不低于 30.0.0
+- 此插件依赖 sdk 目录下 platforms 版本不低于 android-30
diff --git a/docs/uni-ad/ad-rewarded-video.md b/docs/uni-ad/ad-rewarded-video.md
index 189e1a6b2ac6ffdc07606e3f50033c8ad29900ca..dcfe5d9cdce0c1f227929f0143336140996647f9 100644
--- a/docs/uni-ad/ad-rewarded-video.md
+++ b/docs/uni-ad/ad-rewarded-video.md
@@ -587,7 +587,7 @@ export default {
sign = sha256(secret:transid)
```
-提示:`Security key` 在 [uni-ad 广告联盟](https://uniad.dcloud.net.cn) 对应的广告位,配置激励视频服务器回调后可看到
+提示:`Security key` 在 [uni-ad 广告联盟](https://uniad.dcloud.net.cn) 对应的广告位,配置激励视频服务器回调后,点击广告位左侧下拉后可以看到
#### 签名验证方式
diff --git a/docs/univerify.md b/docs/univerify.md
index 8a20a90f78014acd10e8e922656d8edeee9a5106..8432c43be9e8f1642db717c890ddd731b918dd57 100644
--- a/docs/univerify.md
+++ b/docs/univerify.md
@@ -418,8 +418,6 @@ exports.main = async (event, context) => {
const res = await uniCloud.getPhoneNumber({
appid: '_UNI_ABCDEFG', // 替换成自己开通一键登录的应用的DCloud appid
provider: 'univerify',
- apiKey: 'xxx', // HBuilderX 3.94及以上版本可以不传此参数,部分模板/插件的旧版本仍会检查配置
- apiSecret: 'xxx', // HBuilderX 3.94及以上版本可以不传此参数,部分模板/插件的旧版本仍会检查配置
access_token: event.access_token,
openid: event.openid
})
@@ -483,8 +481,6 @@ exports.main = async(event) => {
const res = await uniCloud.getPhoneNumber({
provider: 'univerify',
appid: 'xxx', // DCloud appid,不同于callFunction方式调用,使用云函数Url化需要传递DCloud appid参数!!!
- apiKey: 'xxx', // HBuilderX 3.94及以上版本可以不传此参数,部分模板/插件的旧版本仍会检查配置
- apiSecret: 'xxx', // HBuilderX 3.94及以上版本可以不传此参数,部分模板/插件的旧版本仍会检查配置
access_token: access_token,
openid: openid
})
@@ -559,8 +555,6 @@ exports.main = async(event) => {
const res = await uniCloud.getPhoneNumber({
provider: 'univerify',
appid: 'xxx', // DCloud appid,不同于callFunction方式调用,使用云函数Url化需要传递DCloud appid参数
- apiKey: 'xxx', // HBuilderX 3.94及以上版本可以不传此参数,部分模板/插件的旧版本仍会检查配置
- apiSecret: 'xxx', // HBuilderX 3.94及以上版本可以不传此参数,部分模板/插件的旧版本仍会检查配置
access_token: access_token,
openid: openid
})
diff --git a/package.json b/package.json
index f2a4f84ce5466cc41b3c4c4cc0c81ae5a8101d4f..0ef1e87c36f2fbae7c5c659e0b9caaedafb19b17 100644
--- a/package.json
+++ b/package.json
@@ -33,7 +33,7 @@
"markdown-it-raw-table": "^1.0.0",
"markdown-it-task-lists": "^2.1.1",
"vuepress-plugin-named-chunks": "^1.1.4",
- "vuepress-theme-uni-app-test": "^1.4.7"
+ "vuepress-theme-uni-app-test": "^1.4.8"
},
"dependencies": {
"@docsearch/js": "^3.1.0",
diff --git a/yarn.lock b/yarn.lock
index 5d78e6a36f3bbbf6233808406fad95aadf5e7d2b..154134971eeaefc6779cbaa38a6d9a27ea7acd2b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -9255,6 +9255,11 @@ vuepress-plugin-container@^2.0.2:
"@vuepress/shared-utils" "^1.2.0"
markdown-it-container "^2.0.0"
+vuepress-plugin-expandable-row@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmmirror.com/vuepress-plugin-expandable-row/-/vuepress-plugin-expandable-row-1.0.0.tgz#9197ebb63c0277ae546c18d83dd7734de2438a7f"
+ integrity sha512-255rVtGGeRlTYXxjL4RLbsHfF9Q9fIZH5tIx4BPjYjk5AkULQKE16IekJ+A4mlsH7T944k/2jvxaE1zRy/w5SA==
+
vuepress-plugin-juejin-style-copy@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/vuepress-plugin-juejin-style-copy/-/vuepress-plugin-juejin-style-copy-1.0.4.tgz#b58d10bdae9673875a33660f8a406f31161284bf"
@@ -9288,16 +9293,17 @@ vuepress-plugin-zooming@^1.1.8:
dependencies:
zooming "^2.1.1"
-vuepress-theme-uni-app-test@^1.4.7:
- version "1.4.7"
- resolved "https://registry.npmmirror.com/vuepress-theme-uni-app-test/-/vuepress-theme-uni-app-test-1.4.7.tgz#566be747f080f551a0f65ac306ccc09dab2ab623"
- integrity sha512-O+4FGNetUqEHBpz/EE7KJlwNP3LrU2iz7W1WEq2vHnowPyOxwB2DiSA1aHaHhX1zDAG4n/HILQXhjH48r4uGhw==
+vuepress-theme-uni-app-test@^1.4.8:
+ version "1.4.8"
+ resolved "https://registry.npmmirror.com/vuepress-theme-uni-app-test/-/vuepress-theme-uni-app-test-1.4.8.tgz#d4abf41d92dbe1be3b606fef5d1bef88c7282c29"
+ integrity sha512-hrUFRw+wkFfhu3/RZefkVBWYi24TVYLxOHrIhzYQzeoTA3L2GOHcT+hSmMC4lto67jOYU3crHHjcdZ4ZrCkrcA==
dependencies:
"@vuepress/plugin-back-to-top" "^1.9.5"
"@vuepress/theme-default" "^1.8.2"
algoliasearch "^4.13.1"
clipboard "^2.0.11"
vuepress-plugin-check-md2 "^1.0.4"
+ vuepress-plugin-expandable-row "^1.0.0"
vuepress-plugin-juejin-style-copy "^1.0.4"
vuepress-plugin-mermaidjs "1.9.1"
vuepress-plugin-named-chunks "^1.1.4"