提交 24e57e66 编写于 作者: H HRK

Merge branch 'master' of https://gitcode.net/dcloud/unidocs-zh

......@@ -87,6 +87,27 @@
|流量(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
......
......@@ -109,6 +109,9 @@ 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) {
......
function normalizeMD (md) {
if (typeof md === 'string') {
return md
.replace(/(?<!\\)</g, '\\<')
.replace(/]([^(])|(?<!\\)]$/g, '\\]$1')
.replace(/(?<!\\)\|/g, '\\|')
}
return md
}
function resolveSubtable(md, tokens = [], tokenIndexes = [], flags) {
if (tokens.length && tokenIndexes.length) {
tokenIndexes.forEach(tokenIndex => {
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'],
}
);
},
};
此差异已折叠。
此差异已折叠。
{"manifest":{"table":"| 属性 | 类型 | 默认值 | 描述 |\n| :- | :- | :- | :- |\n| appid | string | - | [DCloud AppID 使用说明](https://ask.dcloud.net.cn/article/35907) |\n| name | string | - | 应用名称 |\n| description | string | - | 应用描述 |\n| versionName | string | - | 应用版本名称 |\n| versionCode | integer | - | 应用版本号,必须是整数,取值范围1~2147483647;升级时必须高于上一次设置的值。 |\n| locale | '' | - | 默认语言 |\n| fallbackLocale | '' | - | 默认回退语言 |\n| uni-app-x | [uni-app-x 配置项列表](#manifest-uni-app-x) | - | 存在uni-app-x节点则表示为uni-app x项目 |\n| app | [app 配置项列表](#manifest-app) | - | App端(原生App)配置 |","description":"[配置指南](http://uniapp.dcloud.io/manifest)"},"manifest_uni-app-x":{"table":"| 属性 | 类型 | 默认值 | 描述 |\n| :- | :- | :- | :- |\n| flex-direction | 'row' \\| 'row-reverse' \\| 'column' \\| 'column-reverse' | column | uvue页面默认flex排列方向 |","description":"存在uni-app-x节点则表示为uni-app x项目"},"manifest_app":{"table":"| 属性 | 类型 | 默认值 | 描述 |\n| :- | :- | :- | :- |\n| distribute | [distribute 配置项列表](#app-distribute) | - | App端发布配置 |","description":"App端(原生App)配置"},"app_distribute":{"table":"| 属性 | 类型 | 默认值 | 描述 |\n| :- | :- | :- | :- |\n| syncDebug | boolean | - | 是否为自定义调试基座 |\n| icons | [icons 配置项列表](#distribute-icons) | - | iOS、Android应用图标配置。云打包后生效,建议在HBuilderX中 manifest.json 的可视化界面操作,不推荐手动在源码视图中修改。 |\n| android | [android 配置项列表](#distribute-android) | - | App-Android端发布配置 |\n| ios | [ios 配置项列表](#distribute-ios) | - | IOS配置 |","description":"App端发布配置"},"distribute_icons":{"table":"| 属性 | 类型 | 默认值 | 描述 |\n| :- | :- | :- | :- |\n| android | [android 配置项列表](#icons-android) | - | Android图标配置 |\n| ios | [ios 配置项列表](#icons-ios) | - | iOS图标配置 |","description":"iOS、Android应用图标配置。云打包后生效,建议在HBuilderX中 manifest.json 的可视化界面操作,不推荐手动在源码视图中修改。"},"icons_android":{"table":"| 属性 | 类型 | 默认值 | 描述 |\n| :- | :- | :- | :- |\n| hdpi | string | - | 高分屏设备程序图标,分辨率要求72x72 |\n| xhdpi | string | - | 720P高分屏设备程序图标,分辨率要求96x96 |\n| xxhdpi | string | - | 1080P高分屏设备程序图标,分辨率要求144x144 |\n| xxxhdpi | string | - | 2K屏设备程序图标,分辨率要求192x192 |"},"icons_ios":{"table":"| 属性 | 类型 | 默认值 | 描述 |\n| :- | :- | :- | :- |\n| appstore | string | - | 提交app store使用的图标 1024x1024 |\n| iphone | [iphone 配置项列表](#ios-iphone) | - | iPhone图标配置 |\n| ipad | [ipad 配置项列表](#ios-ipad) | - | iPad图标配置 |"},"ios_iphone":{"table":"| 属性 | 类型 | 默认值 | 描述 |\n| :- | :- | :- | :- |\n| app@2x | string | - | iOS9.0+ 程序图标(2x) |\n| app@3x | string | - | iOS9.0+ 程序图标(3x) |\n| spotlight@2x | string | - | iOS9.0+ Spotlight图标(2x) |\n| spotlight@3x | string | - | iOS9.0+ Spotlight图标(3x) |\n| settings@2x | string | - | iOS9.0+ Settings设置图标(2x) |\n| settings@3x | string | - | iOS9.0+ Settings设置图标(3x) |\n| notification@2x | string | - | iOS9.0+ 通知栏图标(2x) |\n| notification@3x | string | - | iOS9.0+ 通知栏图标(3x) |"},"ios_ipad":{"table":"| 属性 | 类型 | 默认值 | 描述 |\n| :- | :- | :- | :- |\n| app | string | - | iOS9.0+ 程序图标 |\n| app@2x | string | - | iOS9.0+ 程序图标(2x) |\n| proapp@2x | string | - | iOS9.0+ 程序图标(3x) |\n| spotlight | string | - | iOS9.0+ Spotlight图标 |\n| spotlight@2x | string | - | iOS9.0+ Spotlight图标(2x) |\n| settings | string | - | iOS9.0+ Settings设置图标 |\n| settings@2x | string | - | iOS9.0+ Settings设置图标(2x) |\n| notification | string | - | iOS9.0+ 通知栏图标 |\n| notification@2x | string | - | iOS9.0+ 通知栏图标(2x) |"},"distribute_android":{"table":"| 属性 | 类型 | 默认值 | 描述 |\n| :- | :- | :- | :- |\n| minSdkVersion | integer | 21 | 应用兼容的最低Android版本(API等级);[参考文档](https://uniapp.dcloud.io/tutorial/app-android-minsdkversion) |\n| targetSdkVersion | integer | 30 | 应用适配的目标Android版本(API等级),部分应用市场要求设置较高的targetSdkVersion才能提交审核;[参考文档](https://uniapp.dcloud.io/tutorial/app-android-targetsdkversion) |\n| abiFilters | Array\\<'armeabi-v7a' \\| 'arm64-v8a' \\| 'x86' \\| 'x86_64'> | [\"arm64-v8a\"\\] | [参考文档](https://uniapp.dcloud.io/tutorial/app-android-abifilters) |","description":"App-Android端发布配置"},"distribute_ios":{"table":"| 属性 | 类型 | 默认值 | 描述 |\n| :- | :- | :- | :- |\n| appid | string | - | iOS Bundle ID |"},"tutorial":"## 参见\n[相关 Bug](https://issues.dcloud.net.cn/?mid=collocation.manifest_json)"}
\ No newline at end of file
{"lifeCycle":{"name":"页面生命周期","compatibility":"| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| onInit | x | x | x | x | x | x |\n| onLoad | 5.0 | √ | √ | 10.0 | √ | x |\n| onShow | 5.0 | √ | √ | 10.0 | √ | x |\n| onReady | 5.0 | √ | √ | 10.0 | √ | x |\n| onHide | 5.0 | √ | √ | 10.0 | √ | x |\n| onUnload | 5.0 | √ | √ | 10.0 | √ | x |\n| onPullDownRefresh | 5.0 | √ | √ | 10.0 | √ | x |\n| onReachBottom | 5.0 | √ | √ | 10.0 | √ | x |\n| onShareAppMessage | x | x | x | x | x | x |\n| onShareTimeline | x | x | x | x | x | x |\n| onAddToFavorites | x | x | x | x | x | x |\n| onPageScroll | 5.0 | √ | √ | 10.0 | √ | x |\n| onResize | 5.0 | √ | √ | 10.0 | √ | x |\n| onTabItemTap | 5.0 | √ | x | 10.0 | √ | x |\n| onNavigationBarButtonTap | 5.0 | √ | x | 10.0 | √ | x |\n| onBackPress | 5.0 | √ | √ | 10.0 | √ | x |\n| onNavigationBarSearchInputChanged | 5.0 | √ | x | 10.0 | √ | x |\n| onNavigationBarSearchInputConfirmed | 5.0 | √ | x | 10.0 | √ | x |\n| onNavigationBarSearchInputClicked | 5.0 | √ | x | 10.0 | √ | x |"}}
\ No newline at end of file
{"pages":{"compatibility":"**pages.json 兼容性** \n| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| globalStyle | 5.0 | √ | √ | 10.0 | √ | x |\n| pages | 5.0 | √ | √ | 10.0 | √ | x |\n| tabBar | 5.0 | √ | √ | 10.0 | √ | x |\n| condition | 5.0 | √ | √ | 10.0 | √ | x |\n| easycom | 5.0 | 2.5.5+ | √ | 10.0 | 2.5.5+ | x |","table":"| 属性 | 类型 | 默认值 | 必填 | 描述 |\n| :- | :- | :- | :- | :- |\n| globalStyle | [globalStyle 配置项列表](#pages-globalstyle) | - | 否 | - |\n| pages | Array\\<[PagesOptionsPage](#pagesoptionspage)> | - | 是 | 页面路径及窗口表现 |\n| tabBar | [tabBar 配置项列表](#pages-tabbar) | - | 否 | - |\n| condition | [condition 配置项列表](#pages-condition) | - | 否 | - |\n| easycom | [easycom 配置项列表](#pages-easycom) | - | 否 | 组件自动引入规则 |"},"pages_globalStyle":{"compatibility":"**globalStyle 兼容性** \n| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| navigationBarBackgroundColor | 5.0 | √ | √ | 10.0 | √ | x |\n| navigationBarTextStyle | 5.0 | √ | √ | 10.0 | √ | x |\n| navigationBarTitleText | 5.0 | √ | √ | 10.0 | √ | x |\n| navigationStyle | 5.0 | 2.0.3+ | √ | 10.0 | 2.0.3+ | x |\n| enablePullDownRefresh | 5.0 | √ | √ | 10.0 | √ | x |","table":"| 属性 | 类型 | 默认值 | 必填 | 描述 |\n| :- | :- | :- | :- | :- |\n| navigationBarBackgroundColor | string (string.ColorString) | APP与H5为#F8F8F8,小程序平台请参考相应小程序文档 | 否 | 导航栏背景颜色(同状态栏背景色) |\n| navigationBarTextStyle | 'white' \\| 'black' | black | 否 | 导航栏标题颜色,仅支持 black/white(支付宝小程序不支持,请使用 [my.setNavigationBar](https://opendocs.alipay.com/mini/api/xwq8e6))。 |\n| navigationBarTitleText | string | - | 否 | 导航栏标题文字内容 |\n| navigationStyle | 'default' \\| 'custom' | default | 否 | 导航栏样式,仅支持 default/custom。custom即取消默认的原生导航栏,需看[使用注意](/collocation/pages.md?id=customnav)。 |\n| enablePullDownRefresh | boolean | false | 否 | 是否开启下拉刷新,详见[页面生命周期](/tutorial/page.md?id=lifecycle)。 |"},"PagesOptionsPage":{"compatibility":"**PagesOptionsPage 兼容性** \n| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| path | 5.0 | √ | √ | 10.0 | √ | x |\n| style | 5.0 | √ | √ | 10.0 | √ | x |","table":"| 属性 | 类型 | 默认值 | 必填 | 描述 |\n| :- | :- | :- | :- | :- |\n| path | string (string.PageURIString) | - | 是 | 配置页面路径 |\n| style | [style 配置项列表](#pagesoptionspage-style) | - | 否 | - |"},"PagesOptionsPage_style":{"compatibility":"**style 兼容性** \n| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| navigationBarBackgroundColor | 5.0 | √ | √ | 10.0 | √ | x |\n| navigationBarTextStyle | 5.0 | √ | √ | 10.0 | √ | x |\n| navigationBarTitleText | 5.0 | √ | √ | 10.0 | √ | x |\n| navigationStyle | 5.0 | 2.0.3+ | √ | 10.0 | 2.0.3+ | x |\n| enablePullDownRefresh | 5.0 | √ | √ | 10.0 | √ | x |","table":"| 属性 | 类型 | 默认值 | 必填 | 描述 |\n| :- | :- | :- | :- | :- |\n| navigationBarBackgroundColor | string (string.ColorString) | APP与H5为#F8F8F8,小程序平台请参考相应小程序文档 | 否 | 导航栏背景颜色(同状态栏背景色) |\n| navigationBarTextStyle | 'white' \\| 'black' | black | 否 | 导航栏标题颜色,仅支持 black/white |\n| navigationBarTitleText | string | - | 否 | 导航栏标题文字内容 |\n| navigationStyle | 'default' \\| 'custom' | default | 否 | 导航栏样式,仅支持 default/custom。custom即取消默认的原生导航栏,需看[使用注意](/collocation/pages.md?id=customnav)。 |\n| enablePullDownRefresh | boolean | false | 否 | 是否开启下拉刷新,详见[页面生命周期](/tutorial/page.md#lifecycle)。 |\n| h5 | [h5 配置项列表](#style-h5) | - | 否 | - |\n| mp-alipay | [mp-alipay 配置项列表](#style-mp-alipay) | - | 否 | - |"},"style_h5":{"table":"| 属性 | 类型 | 默认值 | 必填 | 描述 |\n| :- | :- | :- | :- | :- |\n| titleNView | [titleNView 配置项列表](#h5-titlenview) | - | 否 | - |\n| pullToRefresh | [pullToRefresh 配置项列表](#h5-pulltorefresh) | - | 否 | - |"},"h5_titleNView":{"table":"| 属性 | 类型 | 默认值 | 必填 | 描述 |\n| :- | :- | :- | :- | :- |\n| backgroundColor | string (string.ColorString) | #f7f7f7 | 否 | 背景颜色,颜色值格式为\"#RRGGBB\"。 |\n| buttons | array | - | 否 | 自定义按钮,参考 [buttons](/collocation/pages.md?id=h5-titlenview-buttons)。 |\n| titleColor | string (string.ColorString) | #000000 | 否 | 标题文字颜色 |\n| titleText | string | - | 否 | 标题文字内容 |\n| titleSize | string | - | 否 | 标题文字字体大小 |\n| type | 'default' \\| 'transparent' | default | 否 | 导航栏样式。\"default\"-默认样式;\"transparent\"-透明渐变。 |\n| searchInput | object | - | 否 | 导航栏上的搜索框样式,详见:[searchInput](/collocation/pages.md?id=h5-searchinput)。 |"},"h5_pullToRefresh":{"table":"| 属性 | 类型 | 默认值 | 必填 | 描述 |\n| :- | :- | :- | :- | :- |\n| support | boolean | - | 否 | 是否开启窗口的下拉刷新功能 |\n| color | string (string.ColorString) | - | 否 | 颜色值格式为\"#RRGGBB\",仅\"circle\"样式下拉刷新支持此属性。 |\n| type | 'default' \\| 'circle' | - | 否 | 下拉刷新控件样式 |\n| height | string | - | 否 | 窗口的下拉刷新控件进入刷新状态的拉拽高度。支持百分比,如\"10%\";像素值,如\"50px\"。 |\n| range | string | - | 否 | 窗口可下拉拖拽的范围。支持百分比,如\"10%\";像素值,如\"50px\"。 |\n| offset | string | - | 否 | 下拉刷新控件的起始位置。仅对\"circle\"样式下拉刷新控件有效,用于定义刷新控件下拉时的起始位置。支持百分比,如\"10%\";像素值,如\"50px\"。 |\n| contentdown | [contentdown 配置项列表](#pulltorefresh-contentdown) | - | 否 | - |\n| contentover | [contentover 配置项列表](#pulltorefresh-contentover) | - | 否 | - |\n| contentrefresh | [contentrefresh 配置项列表](#pulltorefresh-contentrefresh) | - | 否 | - |"},"pullToRefresh_contentdown":{"table":"| 属性 | 类型 | 默认值 | 必填 | 描述 |\n| :- | :- | :- | :- | :- |\n| caption | string | - | 否 | 下拉刷新控件上显示的标题内容 |"},"pullToRefresh_contentover":{"table":"| 属性 | 类型 | 默认值 | 必填 | 描述 |\n| :- | :- | :- | :- | :- |\n| caption | string | - | 否 | 下拉刷新控件上显示的标题内容 |"},"pullToRefresh_contentrefresh":{"table":"| 属性 | 类型 | 默认值 | 必填 | 描述 |\n| :- | :- | :- | :- | :- |\n| caption | string | - | 否 | 下拉刷新控件上显示的标题内容 |"},"style_mp-alipay":{"table":"| 属性 | 类型 | 默认值 | 必填 | 描述 |\n| :- | :- | :- | :- | :- |\n| allowsBounceVertical | 'YES' \\| 'NO' | YES | 否 | 是否允许向下拉拽。支持 YES / NO |\n| transparentTitle | 'always' \\| 'auto' \\| 'none' | none | 否 | 导航栏透明设置。支持 always 一直透明 / auto 滑动自适应 / none 不透明 |\n| titlePenetrate | 'YES' \\| 'NO' | No | 否 | 导航栏点击穿透 |\n| showTitleLoading | 'YES' \\| 'NO' | No | 否 | 是否进入时显示导航栏的 loading。支持 YES / NO |\n| titleImage | string | - | 否 | 导航栏图片地址,替换导航栏标题,必须为https的图片链接地址 |\n| backgroundImageUrl | string (string.ImageURIString) | - | 否 | 下拉露出显示的背景图链接 |\n| backgroundImageColor | string (string.ColorString) | - | 否 | 下拉露出显示的背景图底色 |\n| gestureBack | 'YES' \\| 'NO' | No | 否 | 支付宝小程序 iOS 用,是否支持手势返回。支持 YES / NO |\n| enableScrollBar | 'YES' \\| 'NO' | YES | 否 | 支付宝小程序 Android 用,是否显示 WebView 滚动条。支持 YES / NO。 |"},"pages_tabBar":{"compatibility":"**tabBar 兼容性** \n| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| color | 5.0 | √ | √ | 10.0 | √ | x |\n| selectedColor | 5.0 | √ | √ | 10.0 | √ | x |\n| backgroundColor | 5.0 | √ | √ | 10.0 | √ | x |\n| list | 5.0 | √ | √ | 10.0 | √ | x |\n| backgroundImage | 5.0 | √ | √ | 10.0 | √ | x |\n| backgroundRepeat | 5.0 | √ | √ | 10.0 | √ | x |\n| redDotColor | 5.0 | √ | √ | 10.0 | √ | x |","table":"| 属性 | 类型 | 默认值 | 必填 | 描述 |\n| :- | :- | :- | :- | :- |\n| color | string (string.ColorString) | - | 是 | tab 上的文字默认颜色 |\n| selectedColor | string (string.ColorString) | - | 是 | tab 上的文字选中时的颜色 |\n| backgroundColor | string (string.ColorString) | - | 是 | tab 的背景色 |\n| list | Array\\<[PagesOptionsTabbarList](#pagesoptionstabbarlist)> | - | 是 | tab 的列表,详见 list 属性说明,最少2个、最多5个 tab |\n| backgroundImage | string | - | 否 | 设置背景图片,优先级高于 backgroundColor |\n| backgroundRepeat | 'repeat' \\| 'repeat-x' \\| 'repeat-y' \\| 'no-repeat' | no-repeat | 否 | 设置标题栏的背景图平铺方式 |\n| redDotColor | string (string.ColorString) | - | 否 | tabbar上红点颜色 |"},"PagesOptionsTabbarList":{"compatibility":"**PagesOptionsTabbarList 兼容性** \n| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| iconfont | 5.0 | 3.4.4+ | √ | 10.0 | 3.4.4+ | x |\n| pagePath | 5.0 | √ | √ | 10.0 | √ | x |\n| text | 5.0 | √ | √ | 10.0 | √ | x |\n| iconPath | 5.0 | √ | √ | 10.0 | √ | x |\n| selectedIconPath | 5.0 | √ | √ | 10.0 | √ | x |\n| visible | 5.0 | 3.2.10+ | √ | 10.0 | 3.2.10+ | x |","table":"| 属性 | 类型 | 默认值 | 必填 | 描述 |\n| :- | :- | :- | :- | :- |\n| iconfont | [iconfont 配置项列表](#pagesoptionstabbarlist-iconfont) | - | 否 | 字体图标,优先级高于 iconPath |\n| pagePath | string (string.PageURIString) | - | 是 | 页面路径,必须在 pages 中先定义 |\n| text | string | - | 是 | tab 上按钮文字,在 App 和 H5 平台为非必填。例如中间可放一个没有文字的+号图标 |\n| iconPath | string (string.ImageURIString) | - | 否 | 图片路径,icon 大小限制为40kb,建议尺寸为 81px * 81px,当 position 为 top 时,此参数无效,不支持网络图片,不支持字体图标 |\n| selectedIconPath | string (string.ImageURIString) | - | 否 | 选中时的图片路径,icon 大小限制为40kb,建议尺寸为 81px * 81px ,当 position 为 top 时,此参数无效 |\n| visible | string | - | 否 | 该项是否显示,默认显示 |"},"PagesOptionsTabbarList_iconfont":{"table":"| 属性 | 类型 | 默认值 | 必填 | 描述 |\n| :- | :- | :- | :- | :- |\n| text | string | - | 否 | 字库 Unicode 码 |\n| selectedText | string | - | 否 | 选中后字库 Unicode 码 |\n| fontSize | string | - | 否 | 字体图标字号(px) |\n| color | string (string.ColorString) | - | 否 | 字体图标颜色 |\n| selectedColor | string (string.ColorString) | - | 否 | 字体图标选中颜色 |","description":"字体图标,优先级高于 iconPath"},"pages_condition":{"table":"| 属性 | 类型 | 默认值 | 必填 | 描述 |\n| :- | :- | :- | :- | :- |\n| current | number | - | 是 | 当前激活的模式,list节点的索引值。 |\n| list | Array\\<[PagesConditionItem](#pagesconditionitem)> | - | 是 | 启动模式列表 |"},"PagesConditionItem":{"table":"| 属性 | 类型 | 默认值 | 必填 | 描述 |\n| :- | :- | :- | :- | :- |\n| name | string | - | 是 | 启动模式名称 |\n| path | string (string.PageURIString) | - | 是 | 启动页面路径 |\n| query | string | - | 否 | 启动参数,可在页面的 onLoad 函数里获得 |"},"pages_easycom":{"table":"| 属性 | 类型 | 默认值 | 必填 | 描述 |\n| :- | :- | :- | :- | :- |\n| autoscan | boolean | true | 否 | 是否开启自动扫描,开启后将会自动扫描符合components/组件名称/组件名称.vue/uvue目录结构的组件 |\n| custom | object | - | 否 | 以正则方式自定义组件匹配规则。如果autoscan不能满足需求,可以使用custom自定义匹配规则 |","description":"组件自动引入规则"},"tutorial":"## 参见\n[相关 Bug](https://issues.dcloud.net.cn/?mid=collocation.pages_json)"}
\ No newline at end of file
{"specialString":{"name":"### 特殊 String @special-string","table":"| 名称 | 描述 |\n| :- | :- |\n| AttrString | 元素上的属性 |\n| AttrValueString | 元素上某个属性的值 |\n| ClassString | 元素全局属性`class`的值 |\n| IDString | 元素全局属性`id`的值 |\n| HTMLEventString | 元素上的事件 |\n| ColorString | CSS颜色的值 |\n| RequireCommonString | 提示common模块 以及js文件路径 |\n| VueI18NKeyString | 国际化翻译的key值 |\n| VueDataString | vue默认参数data中的属性名称 |\n| VueRefString | vue组件中ref属性的值 |\n| VuexDispatchString | vuex 中 actions 的名称 |\n| VuexCommitString | vuex 中 mutations 的名称 |\n| PageURIString | vue, nvue, uvue页面文件的文件路径(根据项目自动匹配) |\n| NPageURIString | nvue页面文件的文件路径 |\n| UPageURIString | uvue页面文件的文件路径, 仅在uniappx中生效 |\n| VideoIdString | video 组件的 id, 仅在uniappx中生效 |\n| WebviewIdString | web-view 组件的 id, 仅在uniappx中生效 |\n| ParentFieldString | uniCloud db schema中parentKey的值 |\n| SchemaFieldString | uniCloud db schema中required数组的值 |\n| ValidateFunctionString | uniCloud db schema中validateFunction的值 |\n| CloudFunctionString | uniCloud 云函数名 |\n| CloudObjectString | uniCloud 云对象名 |\n| DBCollectionString | uniCloud 数据库集合的名称 |\n| DBFieldString | uniCloud 数据库字段名称 |\n| JQLString | uniCloud 数据库要操作的集合, 要查询的字段 |\n| cssPropertyString | CSS属性的名称 |\n| cssPropertyValueString | CSS某个属性的值 |\n| cssSelectorString | CSS选择器的名称 |\n| URIString | 任意文件的文件路径 |\n| CSSURIString | css文件的文件路径(后缀为`.css`的文件路径) |\n| JSURIString | js文件的文件路径(后缀为`.js`的文件路径) |\n| HTMLURIString | html文件的文件路径(后缀为`.html`的文件路径) |\n| MarkdownURIString | markdown文件的文件路径(后缀为`.md`的文件路径) |\n| ScriptImportURIString | js, ts, uts引用文件或模块的文件路径(支持vue,nvue,uvue中script标签内容), 例: `import xxx from 'xxx'` |\n| CssImportURIString | css文件可以引用的文件的文件路径, 后缀为`[\".css\"\\]`的文件路径 例: `@import url('xxx.css')` |\n| ScssImportURIString | scss文件可以引用的文件的文件路径, 后缀为`[\".scss\", \".css\"\\]`的文件路径, 例: `@import 'xxx.scss'` |\n| LessImportURIString | less文件可以引用的文件的文件路径, 后缀为`[\".less\", \".css\"\\]`的文件路径, 例: `@import 'xxx.less'` |\n| FontURIString | 字体文件的文件路径 |\n| ImageURIString | 图片文件的文件路径 |\n| AudioURIString | 音频文件的文件路径 |\n| VideoURIString | 视频文件的文件路径 |"}}
\ No newline at end of file
此差异已折叠。
因为 它太大了无法显示 source diff 。你可以改为 查看blob
此差异已折叠。
此差异已折叠。
{
"application": {
"compatibility": "| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| app.component() | 5.0 | √ | √ | 10.0 | √ | x |\n| app.directive() | 5.0 | √ | x | 10.0 | √ | x |\n| app.use() | 5.0 | √ | 3.99 | 10.0 | √ | x |\n| app.mixin() | 5.0 | √ | 3.99 | 10.0 | √ | x |\n| app.provide() | 5.0 | √ | 3.99 | 10.0 | √ | x |\n| app.config | 5.0 | √ | √ | 10.0 | √ | x |\n| app.config.errorHandler | 5.0 | √ | x | 10.0 | √ | x |\n| app.config.warnHandler | 5.0 | √ | x | 10.0 | √ | x |\n| app.config.performance | 5.0 | √ | x | 10.0 | √ | x |\n| app.config.globalProperties | 5.0 | √ | 3.99 | 10.0 | √ | x |\n| app.config.optionMergeStrategies | 5.0 | √ | x | 10.0 | √ | x |"
},
"general": {
"compatibility": "| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| nextTick() | 5.0 | x | √ | 10.0 | x | x |\n| defineComponent() | 5.0 | x | x | 10.0 | x | x |\n| defineAsyncComponent() | 5.0 | x | x | 10.0 | x | x |"
},
"reactivity_core": {
"compatibility": "| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| ref() | 5.0 | √ | √ | 10.0 | √ | x |\n| computed() | 5.0 | √ | x | 10.0 | √ | x |\n| reactive() | 5.0 | √ | √ | 10.0 | √ | x |\n| readonly() | 5.0 | √ | x | 10.0 | √ | x |\n| watchEffect() | 5.0 | √ | x | 10.0 | √ | x |\n| watch() | 5.0 | √ | x | 10.0 | √ | x |"
},
"reactivity_utilities": {
"compatibility": "| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| isRef() | 5.0 | √ | x | 10.0 | √ | x |\n| unref() | 5.0 | √ | x | 10.0 | √ | x |\n| toRef() | 5.0 | √ | x | 10.0 | √ | x |\n| toRefs() | 5.0 | √ | x | 10.0 | √ | x |\n| isProxy() | 5.0 | √ | x | 10.0 | √ | x |\n| isReactive() | 5.0 | √ | x | 10.0 | √ | x |\n| isReadonly() | 5.0 | √ | x | 10.0 | √ | x |"
},
"reactivity_advanced": {
"compatibility": "| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| shallowRef() | 5.0 | √ | x | 10.0 | √ | x |\n| triggerRef() | 5.0 | √ | x | 10.0 | √ | x |\n| customRef() | 5.0 | √ | x | 10.0 | √ | x |\n| shallowReactive() | 5.0 | √ | x | 10.0 | √ | x |\n| shallowReadonly() | 5.0 | √ | x | 10.0 | √ | x |\n| toRaw() | 5.0 | √ | x | 10.0 | √ | x |\n| markRaw() | 5.0 | √ | x | 10.0 | √ | x |"
},
"options_state": {
"compatibility": "| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| data | 5.0 | √ | √ | 10.0 | √ | x |\n| props | 5.0 | √ | √ | 10.0 | √ | x |\n| computed | 5.0 | √ | √ | 10.0 | √ | x |\n| methods | 5.0 | √ | √ | 10.0 | √ | x |\n| watch | 5.0 | √ | √ | 10.0 | √ | x |\n| emits | 5.0 | √ | √ | 10.0 | √ | x |"
},
"options_rendering": {
"compatibility": "| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| template | 5.0 | x | x | 10.0 | x | x |\n| render | 5.0 | x | 3.99 | 10.0 | x | x |"
},
"options_lifecycle": {
"compatibility": "| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| beforeCreate | 5.0 | √ | √ | 10.0 | √ | x |\n| created | 5.0 | √ | √ | 10.0 | √ | x |\n| beforeMount | 5.0 | √ | √ | 10.0 | √ | x |\n| mounted | 5.0 | √ | √ | 10.0 | √ | x |\n| beforeUpdate | 5.0 | √ | √ | 10.0 | √ | x |\n| updated | 5.0 | √ | √ | 10.0 | √ | x |\n| beforeUnmount | 5.0 | √ | √ | 10.0 | √ | x |\n| unmounted | 5.0 | √ | √ | 10.0 | √ | x |\n| errorCaptured | 5.0 | √ | x | 10.0 | √ | x |\n| renderTracked | 5.0 | √ | x | 10.0 | √ | x |\n| renderTriggered | 5.0 | √ | x | 10.0 | √ | x |\n| activated | 5.0 | √ | x | 10.0 | √ | x |\n| deactivated | 5.0 | √ | x | 10.0 | √ | x |"
},
"options_composition": {
"compatibility": "| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| provide | 5.0 | √ | 3.99 | 10.0 | √ | x |\n| inject | 5.0 | √ | 3.99 | 10.0 | √ | x |\n| mixins | 5.0 | √ | 3.99 | 10.0 | √ | x |\n| extends | 5.0 | √ | x | 10.0 | √ | x |"
},
"options_misc": {
"compatibility": "| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| name | 5.0 | √ | √ | 10.0 | √ | x |\n| inheritAttrs | 5.0 | √ | √ | 10.0 | √ | x |\n| components | 5.0 | √ | √ | 10.0 | √ | x |\n| directives | 5.0 | √ | x | 10.0 | √ | x |"
},
"component_instance": {
"compatibility": "| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| $data | 5.0 | √ | √ | 10.0 | √ | x |\n| $props | 5.0 | √ | √ | 10.0 | √ | x |\n| $el | 5.0 | x | √ | 10.0 | x | x |\n| $options | 5.0 | √ | √ | 10.0 | √ | x |\n| $parent | 5.0 | √ | √ | 10.0 | √ | x |\n| $root | 5.0 | √ | √ | 10.0 | √ | x |\n| $slots | 5.0 | x | √ | 10.0 | √ | x |\n| $refs | 5.0 | √ | √ | 10.0 | √ | x |\n| $attrs | 5.0 | √ | √ | 10.0 | √ | x |\n| $watch() | 5.0 | √ | √ | 10.0 | √ | x |\n| $emit | 5.0 | √ | √ | 10.0 | √ | x |\n| $forceUpdate | 5.0 | √ | 3.99 | 10.0 | √ | x |\n| $nextTick | 5.0 | √ | √ | 10.0 | √ | x |\n| $callMethod | 5.0 | x | √ | 10.0 | x | x |"
},
"directives": {
"compatibility": "| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| v-text | 5.0 | √ | √ | 10.0 | √ | x |\n| v-html | 5.0 | √ | 3.99 | 10.0 | √ | x |\n| v-show | 5.0 | √ | √ | 10.0 | √ | x |\n| v-if | 5.0 | √ | √ | 10.0 | √ | x |\n| v-else | 5.0 | √ | √ | 10.0 | √ | x |\n| v-else-if | 5.0 | √ | √ | 10.0 | √ | x |\n| v-for | 5.0 | √ | √ | 10.0 | √ | x |\n| v-on | 5.0 | √ | √ | 10.0 | √ | x |\n| v-bind | 5.0 | √ | √ | 10.0 | √ | x |\n| v-model | 5.0 | √ | √ | 10.0 | √ | x |\n| v-slot | 5.0 | √ | √ | 10.0 | √ | x |\n| v-pre | 5.0 | √ | 3.99 | 10.0 | √ | x |\n| v-once | 5.0 | √ | 3.99 | 10.0 | √ | x |\n| v-memo | 5.0 | x | 3.99 | 10.0 | x | x |\n| v-cloak | 5.0 | x | x | 10.0 | x | x |"
},
"components": {
"compatibility": "| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| \\<Transition> | 5.0 | x | x | 10.0 | x | x |\n| \\<TransitionGroup> | 5.0 | x | x | 10.0 | x | x |\n| \\<KeepAlive> | 5.0 | x | x | 10.0 | x | x |\n| \\<Teleport> | 5.0 | x | x | 10.0 | x | x |"
},
"special_elements": {
"compatibility": "| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| \\<component> | 5.0 | √ | 3.99 | 10.0 | √ | x |\n| \\<slot> | 5.0 | √ | √ | 10.0 | √ | x |\n| \\<template> | 5.0 | √ | √ | 10.0 | √ | x |"
},
"special_attributes": {
"compatibility": "| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| key | 5.0 | √ | √ | 10.0 | √ | x |\n| ref | 5.0 | √ | √ | 10.0 | √ | x |\n| is | 5.0 | √ | 3.99 | 10.0 | √ | x |"
},
"render_function": {
"compatibility": "| | 安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x |\n| :- | :- | :- | :- | :- | :- | :- |\n| h() | 5.0 | x | 3.99 | 10.0 | x | x |\n| resolveComponent() | 5.0 | x | √ | 10.0 | x | x |\n| resolveDirective() | 5.0 | x | x | 10.0 | x | x |\n| withDirectives() | 5.0 | x | √ | 10.0 | x | x |"
}
}
\ No newline at end of file
......@@ -19,10 +19,10 @@
|参数名|类型|说明|平台差异说明|
|:-|:-|:-|:-|
|path|String|启动的路径(代码包路径)|其他平台均支持,`抖音小程序(1.12.0+)`|
|scene|Number|启动时的场景值,具体值含义请查看各平台文档说明。App、web端恒为 1001。|其他平台均支持,`抖音小程序(1.12.0+)`|
|query|Object|启动时的 query 参数|其他平台均支持,`抖音小程序(1.12.0+)`|
|referrerInfo|Object|来源信息。如果没有则返回 `{}`|其他平台均支持,`抖音小程序(1.15.0+)`|
|path|String|启动的路径(代码包路径)||
|scene|Number|启动时的场景值,具体值含义请查看各平台文档说明。App、web端恒为 1001。||
|query|Object|启动时的 query 参数||
|referrerInfo|Object|来源信息。如果没有则返回 `{}`||
|channel|String|如果应用没有设置渠道标识,则返回空字符串。取值如下|`仅 App 支持`|
|launcher|String|应用启动来源。取值如下|`仅 App 支持`|
|forwardMaterials|Array\<Object\>|打开的文件信息数组,只有从聊天素材场景打开(scene为1173)才会携带该参数|`微信小程序`|
......@@ -61,4 +61,4 @@
| uniLink | 通过通用链接(universal link)启动应用 |
| miniProgram | 通过微信小程序启动应用 |
| shortcut | 通过快捷方式启动,iOS平台表示通过3D Touch快捷方式,Android平台表示通过桌面快捷方式启动 |
| barcode | 通过二维码扫描启动|
\ No newline at end of file
| barcode | 通过二维码扫描启动|
......@@ -14,10 +14,10 @@ web平台不同Vue版本支持情况有差异:
|参数名|类型|说明|平台差异说明|
|:-|:-|:-|:-|
|path|String|启动的路径(代码包路径,注意:App 端开发过程中热更新会直达当前页面,此时启动路径为当前页面路径)|其他平台均支持,`抖音小程序(1.12.0+)`|
|scene|Number|启动时的场景值,具体值含义请查看各平台文档说明。App、web端恒为 1001。钉钉小程序在 IDE 恒为0000,真机不支持。|其他平台均支持,`抖音小程序(1.12.0+)`|
|query|Object|启动时的 query 参数|其他平台均支持,`抖音小程序(1.12.0+)`|
|referrerInfo|Object|来源信息。如果没有则返回 `{}`|其他平台均支持,`抖音小程序(1.15.0+)``飞书小程序不支持``钉钉小程序不支持`|
|path|String|启动的路径(代码包路径,注意:App 端开发过程中热更新会直达当前页面,此时启动路径为当前页面路径)||
|scene|Number|启动时的场景值,具体值含义请查看各平台文档说明。App、web端恒为 1001。钉钉小程序在 IDE 恒为0000,真机不支持。||
|query|Object|启动时的 query 参数||
|referrerInfo|Object|来源信息。如果没有则返回 `{}`|`飞书``钉钉`小程序不支持|
|channel|String|如果应用没有设置渠道标识,则返回空字符串。取值如下|`仅 App 支持`|
|launcher|String|应用启动来源。取值如下|`仅 App 支持`|
|forwardMaterials|Array\<Object\>|打开的文件信息数组,只有从聊天素材场景打开(scene为1173)才会携带该参数|`微信小程序``QQ小程序`|
......@@ -58,4 +58,4 @@ web平台不同Vue版本支持情况有差异:
| uniLink | 通过通用链接(universal link)启动应用 |
| miniProgram | 通过微信小程序启动应用 |
| shortcut | 通过快捷方式启动,iOS平台表示通过3D Touch快捷方式,Android平台表示通过桌面快捷方式启动 |
| barcode | 通过二维码扫描启动|
\ No newline at end of file
| barcode | 通过二维码扫描启动|
......@@ -32,7 +32,7 @@
|onError|callback|录音错误事件, 会回调错误信息|&nbsp;|
|offError|callback|取消监听录音错误事件|仅支付宝小程序支持|
**start(options) 说明**
### start(options)
|属性|类型|必填|说明|平台差异说明|
|:-|:-|:-|:-|:-|
......@@ -61,7 +61,7 @@
|44100|64000 ~ 320000|
|48000|64000 ~ 320000|
**onStop(callback) 回调结果说明**
### onStop(callback)
|属性|类型|说明|
|:-|:-|:-|
......@@ -70,14 +70,14 @@
|fileSize|Number|录音文件大小。单位:Byte。(仅支付宝10.2.90+支持)|
**onFrameRecorded(callback) 回调结果说明**
### onFrameRecorded(callback)
|属性|类型|说明|
|:-|:-|:-|
|frameBuffer|ArrayBuffer|录音分片结果数据|
|isLastFrame|Boolean|当前帧是否正常录音结束前的最后一帧|
**onError(callback) 回调结果说明**
### onError(callback)
|属性|类型|说明|
|:-|:-|:-|
......@@ -87,7 +87,7 @@
- 可以通过用户授权API来判断用户是否给应用授予麦克风的访问权限[https://uniapp.dcloud.io/api/other/authorize](https://uniapp.dcloud.io/api/other/authorize)
**示例**
### 示例
```html
<template>
......
......@@ -48,7 +48,7 @@
**示例**
```html
```
<template>
<view>
<text>hello</text>
......@@ -56,8 +56,6 @@
<video :src="src"></video>
</view>
</template>
```
```javascript
export default {
data() {
return {
......@@ -207,7 +205,7 @@ uni.chooseMedia({
**示例**
```html
```
<template>
<view>
<text>hello</text>
......@@ -215,8 +213,6 @@ uni.chooseMedia({
<video :src="src"></video>
</view>
</template>
```
```javascript
export default {
data() {
return {
......
实人认证提供核验终端操作者的真实身份,包含活体检测和人脸对比等生物识别技术,可快速校验自然人的真实身份。
App平台端详细文档需另见:[业务介绍](https://doc.dcloud.net.cn/uniCloud/frv/intro.html)[开发指南](https://doc.dcloud.net.cn/uniCloud/frv/dev.html)
微信小程序端业务开发流程,请参考[微信人脸核身接口能力](https://developers.weixin.qq.com/community/business/doc/000442d352c1202bd498ecb105c00d)
- App平台端详细文档需另见:[业务介绍](https://doc.dcloud.net.cn/uniCloud/frv/intro.html)[开发指南](https://doc.dcloud.net.cn/uniCloud/frv/dev.html)
- 微信小程序端业务开发流程,请参考[微信人脸核身接口能力](https://developers.weixin.qq.com/community/business/doc/000442d352c1202bd498ecb105c00d)
### uni.getFacialRecognitionMetaInfo()
......
......@@ -60,14 +60,13 @@ uni.requestPayment是一个统一各平台的客户端支付API,不管是在
6. App端,苹果应用内支付 orderInfo 为Object 类型,{productid: 'productid'}。
## H5 平台@h5-payment
- 普通浏览器平台的支付,仍然是常规web做法。uni-app未封装。
- 普通浏览器平台的支付,仍然是常规web做法。uni-app未封装。但DCloud提供了`uni-pay`插件,已封装了web支付,[详见](https://doc.dcloud.net.cn/uniCloud/uni-pay.html)
- 在普通浏览器里也可以调起微信进行支付,这个在微信叫做H5支付,此功能未开放给普通开发者,需向微信单独申请,[详见](https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_1)
- 微信内嵌浏览器运行H5版时,可通过js sdk实现微信支付,需要引入一个单独的js,[详见](https://ask.dcloud.net.cn/article/35380)
- 微信内嵌浏览器运行H5版时,可通过js sdk实现微信支付,需要引入一个单独的js,[详见](https://ask.dcloud.net.cn/article/35380),也可以直接使用[uni-pay](https://doc.dcloud.net.cn/uniCloud/uni-pay.html),无需再单独引入其他js
**各平台支持的支付情况说明**
- 微信小程序里只支持微信小程序支付,在 [微信商户平台](https://pay.weixin.qq.com) 申请支付时,选择公众号支付。
- App 里支持微信sdk支付、支付宝sdk支付、苹果iap应用内支付,在各平台申请支付时选择 App 支付。
- 其他支付(如银联)请使用web-view组件以H5方式实现。
- App 里支持微信sdk支付、支付宝sdk支付、苹果iap应用内支付,在各平台申请支付时选择 App 支付。其他支付(如银联)请使用web-view组件以H5方式实现或在插件市场搜索相应插件。
- 支付宝小程序只支持支付宝支付。
- 百度小程序为百度支付,其二次封装了度小满、支付宝、微信支付。
- Hello uniapp 里演示了各种支付。
......
......@@ -50,7 +50,7 @@
```
### uni.onPushMessage(callback)@onPushMessage
### uni.onPushMessage(callback)@onpushmessage
启动监听推送消息事件
代码示例:
```js
......@@ -80,7 +80,90 @@ uni.offPushMessage(callback);
- 如果uni.offPushMessage没有传入参数,则移除App级别的所有事件监听器;
- 如果只提供了事件名(callback),则移除该事件名对应的所有监听器;
### uni.createPushMessage(OBJECT)@createPushMessage
### uni.getChannelManager()@getchannelmanager
获取通知渠道管理器,Android 8系统以上才可以设置通知渠道。
**返回值说明**
|类型|
|:-|
|[ChannelManager](#channelmanager)|
#### getChannelManager兼容性
|Android 系统版本 |Android|iOS|其他|
|:-|:-|:-|:-|
|8.0|4.02|x|x|
### ChannelManager
渠道管理器
#### setPushChannel(options)
设置推送渠道
|名称|类型|必填|
|:-|:-|:-|
|options|[SetPushChannelOptions](#setpushchanneloptions)|是|
##### SetPushChannelOptions 的属性值
|名称|类型|必备|默认值|描述|
|:-|:-|:-|:-|:-|
|soundName|string|否|null|声音文件名(不能带文件后缀),需要放置声音文件到Android原生的`/res/raw/`目录下 [原生资源配置](https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-android.html#nativeresources) |
|channelId|string|是|-|通知渠道id|
|channelDesc|string|是|-|通知渠道描述|
|enableLights|boolean|否|false|呼吸灯闪烁|
|enableVibration|boolean|否|false|震动|
|importance|number|否|3|通知的重要性级别,可选范围IMPORTANCE_LOW:2、IMPORTANCE_DEFAULT:3、IMPORTANCE_HIGH:4|
|lockscreenVisibility|number|否|-1000|锁屏可见性,可选范围VISIBILITY_PRIVATE:0、VISIBILITY_PUBLIC:1、VISIBILITY_SECRET:-1、VISIBILITY_NO_OVERRIDE:-1000|
##### 代码示例
```typescript
const manager = uni.getChannelManager()
manager.setPushChannel({
channelId: "xxx",
channelDesc: "通知渠道描述",
soundName: "pushsound" // 已经把声音文件存储到/res/raw/pushsound.mp3
})
```
##### setPushChannel兼容性
|Android 系统版本 |Android|iOS|其他|
|:-|:-|:-|:-|
|8.0|4.02|x|x|
#### getAllChannels()
获取当前应用注册的所有的通知渠道。
##### 返回值
|类型|
|:-|
| Array<string> |
##### getAllChannels兼容性
|Android 系统版本 |Android|iOS|其他|
|:-|:-|:-|:-|
|8.0|4.02|x|x|
### 注意事项
* 通知渠道相关配置为Android端专有配置,只能在Android端进行配置。[通知渠道](https://developer.android.com/develop/ui/views/notifications/channels?hl=zh-cn)
* 离线推送申请自分类权益时,需要客户端创建channel,因此客户端提供了`setPushChannel`来进行channel的创建,通过此Api来创建渠道进行推送。客户端创建渠道成功后,即可通过云函数进行推送,[uni-push2服务端文档](https://doc.dcloud.net.cn/uniCloud/uni-cloud-push/api.html)
* 由于Android通知渠道的机制问题,一旦通知渠道建立,便不能修改此渠道的配置,即使删除渠道后再次创建同channelId名称的渠道,也不会改变原先渠道的配置(除非删除应用),最明显的现象就是铃声动态修改失败,比如调用`setPushChannel`时,第一次的设置参数是`{"channelId":"test","soundName":"pushsound"}` , 这时你想切换铃音,你的channelId就不能再叫test了,而应该为`{"channelId":"test2","soundName":"ring"}` ,此时会新建一个渠道。
### uni.createPushMessage(OBJECT)@createpushmessage
创建本地通知栏消息(HBuilderX 3.5.2起支持)
**平台差异说明**
......@@ -101,6 +184,8 @@ uni.offPushMessage(callback);
|cover |boolean |否 |是否覆盖上一次提示的消息</br>可取值:`true``false`,true为覆盖,false不覆盖,默认为permission中设置的cover值</br>Android - ALL (支持)</br>iOS - 5.0+ (不支持): 不支持覆盖消息,只能创建新的消息。 |
|delay |number |否 |提示消息延迟显示的时间</br>当设备接收到推送消息后,可不立即显示,而是延迟一段时间显示,延迟时间单位为s,默认为0s,立即显示。 |
|when |Date |否 |消息上显示的提示时间</br>默认为当前时间,如果延迟显示则使用延时后显示消息的时间。</br>Android - ALL (支持)</br>iOS - 5.0+ (不支持): 不支持设定消息的显示时间,由系统自动管理消息的创建时间。 |
|channelId |string |否 |渠道id, 支持的版本:HBuilder X 4.02+|
|category |string |否 |通知类别,支持的版本:HBuilder X 4.02+|
|success |Function |否 |接口调用成功的回调函数 |
|fail |Function |否 |接口调用失败的回调函数 |
|complete |Function |否 |接口调用结束的回调函数(调用成功、失败都会执行)
......
......@@ -5,8 +5,9 @@
> 在各个小程序平台运行时,网络相关的 API 在使用前需要配置域名白名单。
**推荐开发者上传到uniCloud,uniCloud提供了免费CDN和更好的易用性,包括安全的cdn直传。**
- uniCloud的上传API:[https://uniapp.dcloud.io/uniCloud/storage?id=uploadfile](https://uniapp.dcloud.io/uniCloud/storage?id=uploadfile)
- uniCloud的上传API:[https://doc.dcloud.net.cn/uniCloud/storage/dev.html#uploadfile](https://doc.dcloud.net.cn/uniCloud/storage/dev.html#uploadfile)
- 封装的更完善的[uni-file-picker组件](https://ext.dcloud.net.cn/plugin?id=4079),文件选择、上传到uniCloud,一站式集成。
- 推荐`uni-cdn`,帮你节省至少30%的 CDN 费用![详情](https://doc.dcloud.net.cn/uniCloud/uni-cdn/intro.html)
**OBJECT 参数说明**
......
......@@ -144,7 +144,7 @@ function sendSocketMessage(msg) {
}
```
## 注意事项
**注意事项**
* 出于性能的权衡,在Android端底层实现上发送队列占用的内存不能超过16M,一旦超过将导致连接被关闭。
......
......@@ -340,6 +340,19 @@ HBuilderX中合并路由界面效果图:
**Tips**
- `uni_modules`插件可以在package.json的`uni_modules->dependencies`节点配置三方依赖(依赖的插件也必须是`uni_modules`插件),如果是依赖了三方的npm插件,可以使用标准的dependencies节点配置。
```json
// 通过 uni_modules->dependencies 配置三方uni_modules插件依赖
{
"id": "uni-badge",
"displayName": "uni-badge 数字角标",
"version": "1.2.2",
"description": "数字角标(徽章)组件,在元素周围展示消息提醒,一般用于列表、九宫格、按钮等地方。",
"uni_modules": {
"dependencies": ["uni-scss"]
}
}
```
#### 发布到插件市场
当您的插件开发完毕,可以直接发布到[插件市场](https://ext.dcloud.net.cn/)供其他人免费或付费使用,插件市场提供了变现、评价等机制,优秀的插件作者,可以做到月入好几万。
......
......@@ -105,7 +105,7 @@
* App 本地打包
* [Android本地离线打包](https://nativesupport.dcloud.net.cn/AppDocs/usesdk/android)
* [iOS本地离线打包](https://nativesupport.dcloud.net.cn/AppDocs/usesdk/ios)
* [App 加固加固](app-security.md)
* [App 加固](app-security.md)
* [App 隐私合规检测](app-privacy-detect.md)
* [App 上架注意](store.md)
* [国内应用市场上架](android-store.md)
......@@ -142,7 +142,7 @@
* [app js/nvue文件原生混淆加密](app-sec-confusion.md)
* [Android安全漏洞问题解决方案](app-sec-android.md)
* [App 安全检测API](app-sec-api.md)
* [App 加固加固](app-security.md)
* [App 加固](app-security.md)
* [App 隐私合规检测](app-privacy-detect.md)
* 网络安全
* [云端一体安全网络](https://doc.dcloud.net.cn/uniCloud/secure-network.html)
......
......@@ -33,10 +33,10 @@ App 开发完毕直接上线,可能存在代码泄露风险,通过 dex 整
## 计费规则
uni安全加固分为测试版和正式版两种类型:
- 测试版:免费,App有效期15天,15天后不可用;
- 正式版:600元/次,App长久有效
分为测试版和正式版两种类型:
- 测试版:免费,App有效期15天,15天后不可用;
- 正式版:600元/次 (后续App升级上架到应用商店前,都需要进行一次重新加固)
## 使用指南
......@@ -61,35 +61,38 @@ uni安全加固分为测试版和正式版两种类型:
## 常见问题@question
**uni加固怎么收费的?**
- **加固失败并提示“应用存在安全风险”**
选择腾讯云版进行加固时,可能会出现因应用有病毒而不能加固,去腾讯自家WeTest平台加固同样也是这样的结果。
以下是腾讯官方给出的解释:
1. 加固产品不能有病毒,不能有安全风险,如果有安全风险不能加固。
2. 去手机管家复查是否存在病毒风险:[https://m.qq.com/security_lab/scans_online.jsp](https://m.qq.com/security_lab/scans_online.jsp)
若确认应用本身无风险问题,可在官网进行申诉[https://m.qq.com/complaint/](https://m.qq.com/complaint/),此为应用被报毒唯一申诉渠道。
遇到这种情况,可以切换蚂蚁小程序云版进行加固试试。
另外我们自己也写了一篇Android 应用报毒解决方案[https://ask.dcloud.net.cn/article/37501](https://ask.dcloud.net.cn/article/37501)
- **加固失败并提示“加固工具执行vmp加固过程出错”**
选择腾讯云版方案二进行加固时填写profile.txt类文件内容错误导致,请按照页面提示重新填写
分为测试版和正式版两种类型:
- 测试版:免费,App有效期15天,15天后不可用;
- 正式版:600元/次 (后续App升级上架到应用商店前,都需要进行一次重新加固);
- **加固失败并提示“加固过程出错”**
**uni加固能解决检测报告中的哪些风险?**
选择蚂蚁小程序云版加固时填写So文件、Assets资源文件、Java2C这几项内容错误导致,请按照页面提示重新填写
[查看详情](https://ask.dcloud.net.cn/article/40855)
- **应用加固完成后安装应用失败**
**uni加固是否能去除应用报毒?**
不能
**APP加固后,会影响wgt热更新吗?**
不影响
**上传之前apk已经签过名了,为什么加固后又要重新签一次?**
应用加固不可避免的会破坏原有签名,加固后必须对加固包重签名
加固之后会破坏apk原有的签名,所以需要重新签名,否则无法安装
- **应用加固完成后应用无法运行**
**为什么重签名需要和加固前保持一致?**
情况一:请务必确保重签名选择的证书与之前应用打包签名所使用的证书一致,如果不保持一致,则会触发加固的防二次打包功能,无法正常运行
如果不保持一致,则会触发加固的防二次打包功能,无法正常运行。
情况二:选择腾讯云版对libweexcore.so、libweexjsb.so 、libweexjss.so三个文件加固会导致APP无法运行,请删除后重新加固,选择蚂蚁小程序云版如果有So文件加固需求请切换到腾讯云版加固
**uni加固过程常见报错**
- 应用存在安全风险:选择腾讯云加固时,如果应用被扫描出病毒,则无法完成加固
- 加固工具执行vmp加固过程出错:选择腾讯云加固时,如果profile.txt类文件内容填写错误,则无法完成加固,请按照页面提示重新填写
- 加固过程出错:选择蚂蚁小程序云加固时,如果So文件、Assets资源文件、Java2C这几项内容填写错误,则无法完成加固,请按照页面提示重新填写
......
......@@ -198,7 +198,7 @@ Vue 组件编译到小程序平台的时候会编译为对应平台的组件,
|multipleSlots|Boolean|true|在组件定义时的选项中启动多slot支持||
|styleIsolation|String|apply-shared|组件样式隔离方式,具体配置选项参见:[组件样式隔离](https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/wxml-wxss.html#%E7%BB%84%E4%BB%B6%E6%A0%B7%E5%BC%8F%E9%9A%94%E7%A6%BB)|微信小程序|
|addGlobalClass|Boolean|true|~~这个选项等价于设置 styleIsolation: apply-shared ,但设置了 styleIsolation 选项后这个选项会失效~~|微信小程序|
|virtualHost|Boolean|false|将自定义节点设置成虚拟的,更加接近Vue组件的表现。我们不希望自定义组件的这个节点本身可以设置样式、响应 flex 布局等,而是希望自定义组件内部的第一层节点能够响应 flex 布局或者样式由自定义组件本身完全决定,启用后可以通过 [mergeVirtualHostAttributes](/collocation/manifest.md#mp-weixin) 合并合并组件虚拟节点外层属性|微信小程序、支付宝小程序(默认值为 true)|
|virtualHost|Boolean|false|将自定义节点设置成虚拟的,更加接近Vue组件的表现。我们不希望自定义组件的这个节点本身可以设置样式、响应 flex 布局等,而是希望自定义组件内部的第一层节点能够响应 flex 布局或者样式由自定义组件本身完全决定,启用后可以通过 [mergeVirtualHostAttributes](/collocation/manifest.md#mp-weixin) 合并合并组件虚拟节点外层属性|微信小程序、支付宝小程序(默认值为 true)、抖音小程序(4.02+)|
```js
export default {
......
......@@ -288,7 +288,7 @@ Vue 组件编译到小程序平台的时候会编译为对应平台的组件,
|multipleSlots|Boolean|true|在组件定义时的选项中启动多slot支持||
|styleIsolation|String|apply-shared|组件样式隔离方式,具体配置选项参见:[组件样式隔离](https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/wxml-wxss.html#%E7%BB%84%E4%BB%B6%E6%A0%B7%E5%BC%8F%E9%9A%94%E7%A6%BB)|微信小程序|
|addGlobalClass|Boolean|true|~~这个选项等价于设置 styleIsolation: apply-shared ,但设置了 styleIsolation 选项后这个选项会失效~~|微信小程序|
|virtualHost|Boolean|false|将自定义节点设置成虚拟的,更加接近Vue组件的表现。我们不希望自定义组件的这个节点本身可以设置样式、响应 flex 布局等,而是希望自定义组件内部的第一层节点能够响应 flex 布局或者样式由自定义组件本身完全决定,启用后可以通过 [mergeVirtualHostAttributes](/collocation/manifest.md#mp-weixin) 合并合并组件虚拟节点外层属性|微信小程序、支付宝小程序(默认值为 true)|
|virtualHost|Boolean|false|将自定义节点设置成虚拟的,更加接近Vue组件的表现。我们不希望自定义组件的这个节点本身可以设置样式、响应 flex 布局等,而是希望自定义组件内部的第一层节点能够响应 flex 布局或者样式由自定义组件本身完全决定,启用后可以通过 [mergeVirtualHostAttributes](/collocation/manifest.md#mp-weixin) 合并合并组件虚拟节点外层属性|微信小程序、支付宝小程序(默认值为 true)、抖音小程序(4.02+)|
```js
export default {
......
......@@ -225,17 +225,11 @@ export default {
返回值 为 string 类型
|值 |描述 |
|:-: |:-: |
|wm |uniMP激励视频 |
|csj |穿山甲 |
|gm |穿山甲gromore |
|gdt |腾讯优量汇(前称广点通) |
|ks |快手 |
|sigmob |Sigmob |
|bd |百度 |
|gg |Google AdMob |
|pg |海外穿山甲 |
|值 |描述 |
|:-: |:-: |
|china |国内 |
|global |国际 |
**示例代码**
......@@ -580,7 +574,7 @@ export default {
|字段定义 |类型 |字段名称 |备注 |
|:-: |:-: |:-: |:-: |
|adpid |String |DCloud广告位id | |
|provider |String |广告服务商 |wm、csj、ks、gdt、sigmob |
|provider |String |广告服务商 |china、global |
|platform |String |平台 |iOS、Android |
|sign |String |签名 | |
|trans_id |String |交易id |完成观看的唯一交易ID |
......
......@@ -19,9 +19,9 @@
- 跳转微信打开广告前有微信的二次确认框。
- 不支持从微信直接返回App,用户需要手动返回。
上架微信开放平台的流程如下:
**上架微信开放平台**的流程如下:
1. 确认应用已上架国内的任意应用市场(上架前需要提供软著), 微信开放平台需要已上架的应用下载地址
1. 确认应用已上架国内的任意应用市场(上架前需要提供软著,[点此前往](https://market.aliyun.com/agents/yscdcloud#J_8427731610)加急办理软著登记), 微信开放平台需要已上架的应用下载地址
2. 登录微信开放平台 [https://open.weixin.qq.com/](https://open.weixin.qq.com/)
3. 在微信开放平台 `创建移动应用`,按照提示填写相关信息至完成。创建成功后会生成 `AppID`
4. 确认在微信开放平台创建的应用状态为 `已上架`
......@@ -29,7 +29,7 @@
![](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/uni-ad/uni-ad-unimp-open-weixin-status.png)
开通步骤
**激励视频开通步骤:**
1. 登录 [uni-ad 广告联盟](https://uniad.dcloud.net.cn),找到广告应用设置并点击 App广告 -> DCloud快捷广告 -> 申请开通
......
......@@ -89,7 +89,6 @@ uni.login({
详细步骤参考:[一键登录服务开通指南](https://doc.dcloud.net.cn/uniCloud/uni-login/service)
开通成功后会得到 apiKey、apiSecret。这2个信息,后续需要配置在uniCloud的云函数里。同时注意保密,这2个信息也是计费凭证。
**注意**
> 应用开通uni一键登录服务后,需要等审核通过后才能正式使用。在审核期间可以使用HBuilder标准基座真机运行调用一键登录功能,调用时会从你的账户中扣费;但在审核期间不可以使用自定义基座调用一键登录功能,调用时会返回错误。
......@@ -628,7 +627,7 @@ exports.main = async(event) => {
## 运行基座和打包
- 使用`uni一键登录`,安卓平台不需要制作自定义基座,使用HBuilder标准真机运行基座即可,在云函数中配置好apiKey、apiSecret后,一样从你的账户充值中扣费。iOS平台使用标准基座必须要用`io.dcloud.HBuilder`这个bundleId重签,其他bundleId重签无法登录。
- 使用`uni一键登录`,安卓平台不需要制作自定义基座,使用HBuilder标准真机运行基座即可,调用时会从你的账户中扣费。iOS平台使用标准基座必须要用`io.dcloud.HBuilder`这个bundleId重签,其他bundleId重签无法登录。
- 云端打包
在项目manifest.json页面“App模块配置”项的“OAuth(登录鉴权)”下勾选“一键登录(uni-verify)”。
......
......@@ -9288,10 +9288,10 @@ vuepress-plugin-zooming@^1.1.8:
dependencies:
zooming "^2.1.1"
vuepress-theme-uni-app-test@^1.4.4:
version "1.4.4"
resolved "https://registry.npmmirror.com/vuepress-theme-uni-app-test/-/vuepress-theme-uni-app-test-1.4.4.tgz#6f7175f7b8ebc00a7496b7d02027c4900790aedc"
integrity sha512-WEvTL6xvw4Bzw7efqe/Y4dhpfdGYaKUsdoW5WmlcWDPxcWmT/pLMa7JYmGlGvJPFjhi6Ak3j//sIkEJbAsYcgQ==
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==
dependencies:
"@vuepress/plugin-back-to-top" "^1.9.5"
"@vuepress/theme-default" "^1.8.2"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册