提交 13092eae 编写于 作者: D DCloud_LXH

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

......@@ -40,12 +40,7 @@ export const navbar = [
{
text: 'UTS',
type: 'link',
link: '/uts/'
},
{
text: 'uni-app x',
type: 'link',
link: '/uni-app-x/'
link: '/uni-app-x/uts/'
},
{
text: '插件',
......@@ -137,6 +132,62 @@ export const navbar = [
}
]
},
{
text: 'uni-app x',
link: '/uni-app-x/',
items: [
{
text: '介绍',
type: 'link',
link: '/uni-app-x/'
},
{
text: '编译器',
type: 'link',
link: '/uni-app-x/compiler/'
},
{
text: 'UTS',
type: 'link',
link: '/uni-app-x/uts/'
},
{
text: '全局文件',
type: 'link',
link: '/uni-app-x/collocation/pagesjson'
},
{
text: '组件',
type: 'link',
link: '/uni-app-x/component/'
},
{
text: 'API',
type: 'link',
link: '/uni-app-x/api/'
},
{
text: 'CSS',
type: 'link',
link: '/uni-app-x/css/'
},
{
text: 'DOM',
type: 'link',
link: '/uni-app-x/dom/'
},
{
text: '插件',
type: 'link',
link: '/uni-app-x/plugin/'
},
{
text: '工程化',
type: 'link',
link: '/uni-app-x/worktile/'
}
]
},
{
text: 'uniCloud',
type: 'link',
......
......@@ -91,12 +91,13 @@ const routerMap = {
'/nvue-event': '/tutorial/nvue-event.html',
'/use-html5plus': '/tutorial/use-html5plus.html',
'/m3w': '/uniCloud/uni-portal.html',
'/tutorial/syntax-uts': '/uts/',
'/tutorial/syntax-uts': '/uni-app-x/uts/',
'/uniCloud/uni-id-summary': '/uniCloud/uni-id/summary.html',
'/uniCloud/uni-id-pages': '/uniCloud/uni-id/redirect.md',
'/uniCloud/uni-id-pages': '/uniCloud/uni-id/redirect.html',
'/uniCloud/uni-id-common': '/uniCloud/uni-id/cloud-common.html',
'/uniCloud/uni-id': '/uniCloud/uni-id/old.html',
'/uts/': '/uni-app-x/uts/'
}
export default ({ fullPath, path, hash }) => {
......@@ -125,4 +126,17 @@ export default ({ fullPath, path, hash }) => {
replace: true
}
}
const routerMapKeys = Object.keys(routerMap)
let returnPathConfig = null
routerMapKeys.forEach(key => {
if (path.indexOf(key) === 0 && routerMap[key].indexOf(key) !== 0 && routerMap[key] !== path) {
return returnPathConfig = {
path: path.replace(key, routerMap[key]),
hash,
replace: true
}
}
})
if (returnPathConfig) return returnPathConfig
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ import uniCloud from './uniCloud';
export default {
"/": uniapp,
"/uni-app-x/": uniapp,
'/uniCloud/': uniCloud,
weChatOfficialAccountImg: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/weixin.jpg'
}
......@@ -14,7 +14,12 @@ function simplifySlugText(text) {
return text;
}
const tabs = ['/uniCloud/', '/plugin/', '/worktile/', '/tutorial/', '/collocation/', '/component/', '/api/', '/uts/', '/uni-app-x/', '/']
// 顺序有要求,会影响 for 循环匹配侧边栏
const tabs = [
'/uni-app-x/compiler/', '/uni-app-x/dom/', '/uni-app-x/uts/', '/uni-app-x/collocation/', '/uni-app-x/plugin/', '/uni-app-x/worktile/', '/uni-app-x/component/', '/uni-app-x/api/', '/uni-app-x/css/', '/uni-app-x/',
'/uniCloud/',
'/plugin/', '/worktile/', '/tutorial/', '/collocation/', '/component/', '/api/', '/',
]
module.exports = {
isExternal,
......
......@@ -12,7 +12,7 @@ uni-app 基于 ECMAScript 扩展了 uni 对象,并且 API 命名与小程序
请注意不要把浏览器里的 js 等价于标准 js。
所以 uni-app 的web端,一样支持标准 js,支持 if、for 等语法,支持字符串、数字、时间、布尔值、数组、自定义对象等变量类型及各种处理方法。仅仅是不支持 window、document、navigator 等浏览器专用对象。
所以 uni-app 的web端,一样支持标准 js,支持 if、for 等语法,支持字符串、数字、时间、布尔值、数组、自定义对象等变量类型及各种处理方法。仅仅是不支持 window、document、navigator 等浏览器专用对象。
## 各端特色 API 调用
......
此差异已折叠。
......@@ -6,7 +6,7 @@ uni-app提供了异步(`uni.getSystemInfo`)和同步(`uni.getSystemInfoSync`)的
按照运行环境层级排序,从底层向上,uni-app有6个概念:
- `device`:运行应用的设备,如iphone、huawei
- `os`:设备的操作系统,如 ios、andriod、windows、mac、linux
- `os`:设备的操作系统,如 ios、android、windows、mac、linux
- `rom`:基于操作系统的定制,Android系统特有概念,如miui、鸿蒙
- `host`:运行应用的宿主程序,即OS和应用之间的运行环境,如浏览器、微信等小程序宿主、集成uniMPSDK的App。uni-app直接开发的app没有host概念
- `uni`:uni-app框架相关的信息,如uni-app框架的编译器版本、运行时版本
......@@ -34,7 +34,7 @@ uni-app提供了异步(`uni.getSystemInfo`)和同步(`uni.getSystemInfoSync`)的
| |deviceOrientation |设备方向 |`竖屏 portrait``横屏 landscape`|`竖屏 portrait``横屏 landscape`|`竖屏 portrait``横屏 landscape`。仅微信百度小程序支持||uni-app 3.4.13+|
| |devicePixelRatio |设备像素比 || |||uni-app 3.4.13+|
|os |osName|系统名称|ios、android|ios、android、windows、macos、linux|ios、android、windows、macos||uni-app 3.4.10+|
| |osVersion |操作系统版本。如 ios 版本,andriod 版本|||||uni-app 3.4.10+|
| |osVersion |操作系统版本。如 ios 版本,android 版本|||||uni-app 3.4.10+|
| |osLanguage |操作系统语言[详见](#tips)|Android仅支持主语言+地区:`zh-CN 中文简体`、iOS支持主语言+次语言+地区`zh-Hans-CN 中文简体` |与浏览器语言一致 |不支持 | |uni-app 3.4.10+|
| |osTheme |操作系统主题 |light、dark。iOS平台只有将应用主题设置为跟随系统时才能获取到系统的主题|不支持 |不支持 ||uni-app 3.4.10+|
| |osAndroidAPILevel | Android 系统API库的版本。详情参考[Android 官方文档](https://developer.android.google.cn/guide/topics/manifest/uses-sdk-element?hl=en#ApiLevels)|`仅 Android 支持`|不支持|不支持||uni-app 3.4.10+|
......
......@@ -21,7 +21,7 @@ App-Android平台云端打包相关配置
|locale|String|应用的默认语言|
|forceDarkAllowed|Boolean|是否强制允许暗黑模式|
|resizeableActivity|Boolean|是否支持分屏调整窗口大小|
|hasTaskAffinity|Boolean|是否设置android:taskAffinity|
|hasTaskAffinity|Boolean|是否设置android:taskAffinity[详见](https://uniapp.dcloud.net.cn/tutorial/app-sec-android.html#strandhogg%E6%BC%8F%E6%B4%9E)|
|buildFeatures|Object|Android平台云端打包时build.gradle的buildFeatures配置项,[详见](/collocation/manifest?id=buildFeatures)|
|pushRegisterMode|String|延迟初始化UniPush的配置,当配置此项值为`manual`后UniPush不会初始化,直到首次调用[getPushClientId](https://uniapp.dcloud.net.cn/api/plugins/push.html#getpushclientid)、getClientInfo、getClientInfoAsync时才会初始化,注:一旦调用获取cid的方法后,下次App启动就不再延迟初始化UniPush了。(manual为延迟,其他值表示不延迟。)|
|enableOAID|Boolean|是否支持获取OAID,默认值为true,[详见](/collocation/manifest?id=enableOAID)|
......
......@@ -422,7 +422,7 @@ Tips:关于摇树优化(treeShaking)原理及优化结果,参考:[http
|requiredBackgroundModes|Array|微信小程序需要在后台使用的能力,[详见](https://developers.weixin.qq.com/miniprogram/dev/framework/config.html#requiredbackgroundmodes)|
|plugins|Object|使用到的插件,[详见](https://developers.weixin.qq.com/miniprogram/dev/framework/plugin/using.html)|
|resizable|Boolean|在iPad上小程序是否支持屏幕旋转,默认关闭|
|navigateToMiniProgramAppIdList|Array|需要跳转的小程序列表,[详见](https://developers.weixin.qq.com/miniprogram/dev/api/open-api/miniprogram-navigate/wx.navigateToMiniProgram.html)|
|navigateToMiniProgramAppIdList|Array|需要跳转的小程序列表,[详见](https://developers.weixin.qq.com/minigame/dev/reference/configuration/app.html#navigateToMiniProgramAppIdList)|
|permission|Object|微信小程序接口权限相关设置,比如申请位置权限必须填此处[详见](https://developers.weixin.qq.com/miniprogram/dev/framework/config.html)|
|workers|String|Worker 代码放置的目录。 [详见](https://developers.weixin.qq.com/miniprogram/dev/framework/workers.html)|
|optimization|Object| 对微信小程序的优化配置 |
......
......@@ -220,7 +220,7 @@ export default {
属性名|说明
:-:|:-:
navigateTo|同 uni.navigateTo()
redirectTo|同 uni.reLaunch()
redirectTo|同 uni.redirectTo()
reLaunch|同 uni.reLaunch()
switchTab|同 uni.switchTab()
......
#### 3.98.2023112510
* 【uni-app】
+ 优化 编译时如 static 目录下存在被忽略的、非当前平台可用的目录,会给出强调提示 [详情](https://uniapp.dcloud.net.cn/tutorial/platform.html#static)
+ 修复 vue3 项目 vite.config.js 配置 target 未作用到 renderjs 的Bug [详情](https://ask.dcloud.net.cn/question/180135)
+ 修复 使用 uni ext-api,升级更新 wgt 后,调用可能报错的Bug [详情](https://ask.dcloud.net.cn/question/180309)
+ 修复 使用 uni ext api,且云打包同时勾选Android和iOS,发行后的安装包未能正确包含uni ext api插件的Bug [详情](https://ask.dcloud.net.cn/question/181295)
+ uni统计2 修复 支付宝小程序云报错 spaceAppId required 的bug [详情](https://ask.dcloud.net.cn/question/181491)
* 【uni-app x插件】
+ 新增 组件 form 表单 [详情](https://uniapp.dcloud.net.cn/uni-app-x/component/form.html)
+ 新增 组件 sticky-section 分段吸顶 [详情](https://uniapp.dcloud.net.cn/uni-app-x/component/sticky.html#sticky-section)
+ 新增 uni-push [详情](https://uniapp.dcloud.net.cn/uni-app-x/api/push.html)
+ 新增 uni.addInterceptor 拦截器,可拦截部分API [详情](https://uniapp.dcloud.net.cn/uni-app-x/api/interceptor.html)
+ 新增 uni.setNavigationBarTitle [详情](https://uniapp.dcloud.net.cn/uni-app-x/api/set-navigation-bar-title.html)
+ 调整 uni.downloadFile 下载默认目录调整为app的cache目录下的uniDownloads目录,方便被rom的清理工具清理 [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=201)
+ 补充 uni.getAppBaseInfo 获取获取包名、签名信息 [详情](https://uniapp.dcloud.net.cn/uni-app-x/api/get-app-base-info.html)
+ 补充 组件 scroll-view 支持 nested-scroll-child,可将嵌套滚动的父滚动视图滚动余量传递给子视图 [详情](https://uniapp.dcloud.net.cn/uni-app-x/component/scroll-view.html)
+ 补充 组件 web-view 支持 download 事件,以及 loading、loaded 事件回调参数支持 url 属性 [详情](https://uniapp.dcloud.net.cn/uni-app-x/component/web-view.html)
+ 补充 组件 image、video 的 src 属性及 css 中,支持非 static 目录的静态资源
+ 修复 组件 text 固定宽高时,设置 padding-left 和 padding-right 可能导致文本不居中的Bug
+ 修复 组件 text 设置 space 属性时,换行符 \n 有时无法正常显示的Bug
+ 修复 组件 text 设置 line-height 属性可能不生效的Bug
+ 修复 组件 scroll-view、list-view 同时设置 scroll-y、scroll-x属性为 false 时,组件的 touch 相关事件不触发的Bug
+ 修复 组件 swiper current 属性可能不生效的Bug [详情](https://ask.dcloud.net.cn/question/181396)
+ 修复 组件 swiper-item 的 overflow 属性值为 hidden 时子元素未被裁剪的Bug
+ 修复 组件 list-item 执行复用时遇到 text 组件嵌套可能会闪退的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=216)
+ 修复 组件 checkbox-group 动态修改 checkbox 组件的 check 属性时,form 组件提交的 value 不正确的Bug
+ 修复 组件 radio-group 动态修改 radio 组件的 check 属性时,form 组件提交的 value 不正确的Bug
+ 修复 组件 slider 当父容器可滚动且显示 value 且当前滑块值为最大值时,无法直接在滑块的右半径上按下拖动的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=218)
+ 修复 组件 video 部分 event 回调没有属性值的Bug [详情](https://ask.dcloud.net.cn/question/180748)
+ 新增 uvue 文件支持引入 ts 后缀的文件,等同于 uts 后缀。方便插件同时兼容uni-app和uni-app x
+ 优化 编译器 项目存在大量css代码时的编译速度
+ 修复 easycom组件类型在非uvue页面中使用报错的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=177)
+ 修复 uvue 页面文件名与 easycom 组件同名时渲染不正确Bug
+ 修复 动态创建的根节点 class 样式丢失的Bug
+ 修复 v-model 绑定的表达式包裹 () 运行失败的Bug
+ 修复 在自定义组件中使用 class 定制另一个自定义组件根节点样式不生效的Bug
+ 修复 data 中定义的 UTSJSONObject 修改后,不触发渲染的Bug
+ 调整 各项目模板的 index.html (web平台专有文件)中引入入口文件从 main.js 改为 main(即main.uts,后缀可省略)
+ 修复 Element 的 style 调用 setProperty 更新 transition-duration 属性值不支持单位为s(秒)的Bug
+ 修复 uni.loadFontFace 多次请求同一网络字体时可能触发错误回调的Bug
+ 修复 uni.toast、uni.showModal等交互反馈弹窗在onLoad等特定场景可能引起应用崩溃的Bug
+ 修复 uni.getLocation 系统定位获取位置慢的Bug
+ 补充 css position 属性设置为 absolute 时,margin 支持取值 auto
+ 补充 真机运行标准基座内置所有常用权限。减少因权限造成的打包自定义基座的频率
+ 新增 模板 App升级中心兼容uni-app x [详见](https://ext.dcloud.net.cn/plugin?id=4542)
+ 新增 模板 uni-id-pages-x 方便开发账户系统 [详情](https://uniapp.dcloud.net.cn/uniCloud/uni-id/app-x.html)
+ 修复 部分情况下真机运行 appid 为空导致应用异常崩溃的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=162)
+ 修复 使用 v-if 显示组件的 background 样式设置为线性渐变可能引起崩溃的Bug [详情](https://issues.dcloud.net.cn/pages/issues/detail?id=164)
* 【uts插件】
+ 新增 App-Android平台 uni-app x项目开发的uts原生组件定义的对外方法支持返回值
+ 新增 App-iOS平台 真机运行适配支持 XCode15
+ 新增 uts插件支持监听应用的原生生命周期回调函数 [详情](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#hooksclass)
+ 新增 uts组件插件支持 NVUpdateStyles 生命周期监听组件的样式更新 [详情](https://uniapp.dcloud.net.cn/plugin/uts-component.html#%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F)
+ 优化 异步函数在 uni-app x 中使用时默认与框架运行在同一线程
+ 修复 位移赋值类操作符,当右侧为复杂表达式,计算结果不正确的Bug
+ 修复 部分位运算组合使用时优先级不正确的Bug
+ 修复 Number 参与的运算结果可能整型溢出的Bug
+ 修复 Number 参与的除法运算除数不能为0的Bug
+ 修复 App-Android平台 Array join 返回值与 web 不一致的Bug
+ 修复 相同interface、class定义了不同属性,方法调用失败的Bug
+ 修复 App-Android平台 string 的 indexOf 方法参数类型不正确的Bug
+ 调整 App-Android平台 uts组件插件内置对象 $androidContext 可为空 [详情](https://uniapp.dcloud.net.cn/plugin/uts-component.html#%E5%86%85%E7%BD%AE%E5%AF%B9%E8%B1%A1%E5%92%8C%E5%87%BD%E6%95%B0)
+ 修复 uni-app 项目 vue2 下开发uts插件报错可能未指向源码的Bug
+ 修复 自定义基座真机运行时hooksClass 相关回调重复调用的Bug
+ 修复 App-iOS平台 使用 uts 插件(含ext api)后因底层依赖 uni-getDeviceInfo 有读取 IDFA 的代码导致可能影响应用上架审核的Bug
* 【App插件(含5+App和uni-app的App端)】
+ Android平台 更新 uni-AD 模块 穿山甲&GroMore SDK为 5.7.0.5 版,解决加载广告可能会崩溃的Bug
+ Android平台 更新 一键登录使用的个推核心组件SDK为 3.2.9.0 版,个验SDK为 3.1.4.0 版
+ Android平台 更新 uni实人认证使用的阿里云金融级实人认证SDK为 2.3.7 版
* 【uniCloud】
+ 【重要】新增 uniCloud支付宝小程序云版,全端可用、uni-app和uni-app x均可用。价格更优,限制更少,支持域名备案
+ 【重要】调整 废弃 `db_init.json`,每个collection由schema.json、index.json、init_data.json、schema.ext.js 4个文件描述 [详情](https://uniapp.dcloud.net.cn/uniCloud/hellodb.html#init-db)
+ 优化 基于模板新建schema/新建schemajs时,如模板是由多个文件组成的,允许用户选择创建具体的文件
#### 3.95.2023102806
* 【uni-app x插件】
* 新增 ext api `uni.installApk` 安装apk [详情](https://uniapp.dcloud.net.cn/uni-app-x/api/install-apk.html)
......
......@@ -26,7 +26,7 @@
* [vue2 升 3 指南](/tutorial/migration-to-vue3.md)
* [ts/typescript 专题](/tutorial/typescript-subject.md)
* [jsx/tsx 语法](/tutorial/syntax-jsx.md)
* [uts语法](/uts/)
* [uts语法](/uni-app-x/uts/)
* 编译器(条件编译)
* [什么是编译器](/tutorial/compiler.md)
* [条件编译处理多端差异](/tutorial/platform.md)
......
......@@ -113,7 +113,7 @@ uni-app x项目manifest.json中没有提供Android权限的配置,需在此And
```
## 应用资源
## 应用资源@nativeResources
HBuilderX中对项目右键菜单 "新建" -> "目录"
![](https://native-res.dcloud.net.cn/images/uniapp/nativeresource/newdir.png)
......
......@@ -40,46 +40,14 @@
<a id='sdkpermission' />
### Android自动添加三方SDK(或模块)需要的权限
### Android平台三方SDK(或模块)需要的权限
提交云端打包时,勾选使用三方SDK相关的功能模块时,默认会自动添加三方SDK需要的所有权限。
为了保证三方SDK(或模块)的功能完整,默认会添加可能需要的所有权限,如果应用只用到三方SDK提供的部分功能,不希望自动添加三方SDK需要的所有权限,可以去掉勾选“Android自动添加第三方SDK需要的权限”。
**为了向下兼容,云端打包默认会添加“Geolocation(定位)” -> “系统定位”模块,因此会默认添加定位权限,如果不需要定位权限,请在App权限配置界面去掉勾选“Android自定添加第三方SDK需要的权限”**
为了保证三方SDK(或模块)的功能完整,默认会添加可能需要的所有权限,如果应用只用到三方SDK提供的部分功能,需通过Android原生应用清单文件配置[移除Android权限](app-nativeresource-android.md#removepermissions)
**注意:去掉自动添加第三方SDK需要的权限后,请务必根据需要在“Android权限配置”中勾选三方SDK必需的权限,三方SDK需要的权限详情参考后面《三方SDK(或模块)需要的权限列表》章节**
保存后提交云端打包生效。
#### 可视化界面配置
打开项目的manifest.json文件,在“App权限配置”项中去掉“Android自动添加第三方SDK需要的权限”
![](https://native-res.dcloud.net.cn/images/uniapp/permission/android-sdk.png)
**注意:HBuilderX中manifest.json文件的 “App权限配置” -> “Android自动添加第三方SDK需要的权限” 复选框功能已失效(即不勾选也会添加三方SDK需要的权限),后续版本将会移除此配置项**
#### 代码视图配置
打开项目的manifest.json文件,切换到“代码视图”。
- uni-app项目
在 "app-plus" -> "distribute" -> "android" 下添加 autoSdkPermissions 如下:
```json
"app-plus": {
"distribute": {
"android": {
"autoSdkPermissions": false, // 不自动添加第三方SDK需要的Android权限
//...
},
//...
},
//...
```
- 5+ APP(WAP2APP)项目
在 "plus" -> "distribute" -> "google" 下添加 autoSdkPermissions 如下:
```json
"plus": {
"distribute": {
"google": {
"autoSdkPermissions": false, // 不自动添加第三方SDK需要的Android权限
//...
},
//...
},
//...
```
### Android权限配置
打开项目的manifest.json文件,在“(App)模块权限配置”页的“Android权限配置”项下根据需求勾选需要的权限:
......@@ -139,6 +107,17 @@
"<uses-permission android:name=\"android.permission.USE_FINGERPRINT\"/>"
```
#### FacialRecognitionVerify(实人认证)
```
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
```
#### iBeacon
```
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\" />",
......@@ -293,25 +272,95 @@
```
#### uni-AD
- 今日头条穿山甲广告联盟
```
"<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\" />",
"<uses-permission android:name=\"android.permission.GET_TASKS\"/>"
- 穿山甲&GroMore广告联盟
```
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
```
- 腾讯优量汇广告联盟
```
"<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\" />"
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.REORDER_TASKS" />
<uses-permission android:name="android.permission.VIBRATE" />
```
- 快手广告联盟
```
"<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\" />",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\" />",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />"
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.VIBRATE" />
```
- 快手内容联盟
```
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.SET_WALLPAPER" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.VIBRATE" />
```
- 百度广告联盟
- sigmob广告联盟
```
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
```
- 华为广告联盟
```
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
```
- Pangle(海外穿山甲)
```
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
```
- google AdMob
```
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
```
### 相关参考
......
......@@ -41,8 +41,8 @@
- HbuilderX 1.9.0+ 支持在根目录创建 `ext.json``sitemap.json` 等小程序需要的文件。
### static目录
为什么需要static这样的目录?
### static目录@static
- 为什么需要static这样的目录?
uni-app编译器根据pages.json扫描需要编译的页面,并根据页面引入的js、css合并打包文件。\
对于本地的图片、字体、视频、文件等资源,如果可以直接识别,那么也会把这些资源文件打包进去,但如果这些资源以变量的方式引用,
......@@ -56,4 +56,12 @@ uni-app编译器根据pages.json扫描需要编译的页面,并根据页面引
`static` 目录下的文件(vue组件、js、css 等)只有被引用时,才会被打包编译。
`css``less/scss` 等资源不要放在 `static` 目录下,建议这些公用的资源放在自建的 `common` 目录下。
\ No newline at end of file
`css``less/scss` 等资源不要放在 `static` 目录下,建议这些公用的资源放在自建的 `common` 目录下。
- static目录和App原生资源目录有关系吗?
uni-app支持App原生资源目录nativeResources,下面有assets、res等目录,[详见](app-nativeresource-android.md#nativeResources)。但和static目录没有关系。
static目录下的文件,在app第一次启动时,解压到了app的外部存储目录(external-path)。
所以注意控制static目录的大小,太大的static目录和太多文件,会造成App安装后第一次启动变慢。
\ No newline at end of file
......@@ -7,210 +7,10 @@
* [复杂列表开发指南](tutorial/stickynestlist.md)
* [全局变量与状态管理](tutorial/store.md)
* [几种组件标记的概念澄清](tutorial/idref.md)
* 编译器
* [概述](compiler/README.md)
* [条件编译](https://uniapp.dcloud.net.cn/tutorial/platform.html)
* [编译运行环境](https://uniapp.dcloud.net.cn/worktile/running-env.html)
* 全局文件
* [pages.json](pagesjson.md)
* [main.uts](https://uniapp.dcloud.net.cn/collocation/main.html)
* [app.uvue](https://uniapp.dcloud.net.cn/collocation/App.html)
* [manifest.json](manifest.md)
* [AndroidManifest.xml](https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-android.html)
* [uni.scss](https://uniapp.dcloud.net.cn/collocation/uni-scss.html)
* vue框架
* vue 框架
* [概述](vue/README.md)
<!-- * [基础](https://uniapp.dcloud.net.cn/tutorial/vue3-basics.html)
* [组件](https://uniapp.dcloud.net.cn/tutorial/vue3-components.html)
* [API](vue/api.md) -->
* 组件
* [概述](component/README.md)
* [公共属性和事件](component/common.md)
* [view](component/view.md)
* [scroll-view](component/scroll-view.md)
* [list-view](component/list-view.md)
* [sticky](component/sticky.md)
* [swiper](component/swiper.md)
* [navigator](component/navigator.md)
* [text](component/text.md)
* [rich-text](component/rich-text.md)
* [image](component/image.md)
* [input](component/input.md)
* [textarea](component/textarea.md)
* [button](component/button.md)
* [checkbox](component/checkbox-group.md)
* [radio](component/radio-group.md)
* [picker-view](component/picker-view.md)
* [progress](component/progress.md)
* [slider](component/slider.md)
* [switch](component/switch.md)
* [form](component/form.md)
* [video](component/video.md)
* [web-view](component/web-view.md)
* [animation-view](component/animation-view.md)
* [unicloud-db](component/unicloud-db.md)
* API
* [概述](api/README.md)
* 全局
* [getApp](api/get-app.md)
* [getCurrentPages](api/get-current-pages.md)
* 基础
* [事件总线event-bus](api/event-bus.md)
* [拦截器](api/interceptor.md)
* [获取启动参数](api/get-launch-options-sync.md)
* [退出应用](api/exit.md)
* 页面
* [页面跳转](api/navigator.md)
* [设置导航条颜色](api/set-navigation-bar-color.md)
* [设置导航条标题](api/set-navigation-bar-title.md)
* [设置tabbar](api/set-tabbar.md)
* [页面下拉刷新](api/pull-down-refresh.md)
* [将页面滚动到指定位置](api/page-scroll-to.md)
* 元素节点
* [获取element](api/get-element.md)
* [获取node](api/nodes-info.md)
* 界面
* [交互反馈](api/prompt.md)
* [动态加载字体](api/load-font-face.md)
* [截屏事件](api/capturescreen.md)
* 网络
* [发起请求request](api/request.md)
* [上传文件](api/upload-file.md)
* [下载文件](api/download-file.md)
* [获取设备网络状态](api/get-network-type.md)
* [websocket](api/websocket-global.md)
* 设备
* [获取系统信息](api/get-system-info.md)
* [获取设备信息](api/get-device-info.md)
* [获取窗口信息](api/get-window-info.md)
* [获取app基础信息](api/get-app-base-info.md)
* [获取app授权设置](api/get-app-authorize-setting.md)
* [获取系统设置](api/get-system-setting.md)
* [获取电量信息](api/get-battery-info.md)
* [安装 APK](api/install-apk.md)
* [wifi](api/wifi.md)
* [内存](api/memory.md)
* [截屏事件](api/capturescreen.md)
* 媒体
* [拍照和相册选择](api/choose-image.md)
* [图片预览](api/preview-image.md)
* [保存图片到相册](api/save-image-to-photos-album.md)
* 位置
* [获取当前位置](api/get-location.md)
* 推送
* [推送](api/push.md)
* 数据存储
* [storage(key-value存储)](api/storage.md)
* 登录和验证
* [实人认证](api/facial-recognition-verify.md)
* 组件上下文对象
* [web-view组件上下文对象](api/create-webview-context.md)
* [video组件上下文对象](api/create-video-context.md)
* uniCloud客户端API
* [概述](unicloud/README.md)
* [云函数](unicloud/function.md)
* [云对象](unicloud/object.md)
* [数据库](unicloud/database.md)
* [云存储](unicloud/storage.md)
* [其他API](unicloud/utils.md)
* [其他EXT API](ext.md)
* CSS
* [CSS概述](css/README.md)
* [align-content](css/align-content.md)
* [align-items](css/align-items.md)
* [background](css/background.md)
* [background-clip](css/background-clip.md)
* [background-color](css/background-color.md)
* [background-image](css/background-image.md)
* [border](css/border.md)
* [border-bottom-color](css/border-bottom-color.md)
* [border-bottom-left-radius](css/border-bottom-left-radius.md)
* [border-bottom-right-radius](css/border-bottom-right-radius.md)
* [border-bottom-style](css/border-bottom-style.md)
* [border-bottom-width](css/border-bottom-width.md)
* [border-color](css/border-color.md)
* [border-left-color](css/border-left-color.md)
* [border-left-style](css/border-left-style.md)
* [border-left-width](css/border-left-width.md)
* [border-radius](css/border-radius.md)
* [border-right-color](css/border-right-color.md)
* [border-right-style](css/border-right-style.md)
* [border-right-width](css/border-right-width.md)
* [border-style](css/border-style.md)
* [border-top-color](css/border-top-color.md)
* [border-top-left-radius](css/border-top-left-radius.md)
* [border-top-right-radius](css/border-top-right-radius.md)
* [border-top-style](css/border-top-style.md)
* [border-top-width](css/border-top-width.md)
* [border-width](css/border-width.md)
* [bottom](css/bottom.md)
* [box-shadow](css/box-shadow.md)
* [box-sizing](css/box-sizing.md)
* [color](css/color.md)
* [display](css/display.md)
* [flex](css/flex.md)
* [flex-basis](css/flex-basis.md)
* [flex-direction](css/flex-direction.md)
* [flex-flow](css/flex-flow.md)
* [flex-grow](css/flex-grow.md)
* [flex-shrink](css/flex-shrink.md)
* [flex-wrap](css/flex-wrap.md)
* [font-family](css/font-family.md)
* [font-size](css/font-size.md)
* [font-style](css/font-style.md)
* [font-weight](css/font-weight.md)
* [height](css/height.md)
* [justify-content](css/justify-content.md)
* [left](css/left.md)
* [line-height](css/line-height.md)
* [margin](css/margin.md)
* [margin-bottom](css/margin-bottom.md)
* [margin-left](css/margin-left.md)
* [margin-right](css/margin-right.md)
* [margin-top](css/margin-top.md)
* [max-height](css/max-height.md)
* [max-width](css/max-width.md)
* [min-height](css/min-height.md)
* [min-width](css/min-width.md)
* [opacity](css/opacity.md)
* [overflow](css/overflow.md)
* [padding](css/padding.md)
* [padding-bottom](css/padding-bottom.md)
* [padding-left](css/padding-left.md)
* [padding-right](css/padding-right.md)
* [padding-top](css/padding-top.md)
* [position](css/position.md)
* [right](css/right.md)
* [text-align](css/text-align.md)
* [text-decoration](css/text-decoration.md)
* [text-decoration-color](css/text-decoration-color.md)
* [text-decoration-line](css/text-decoration-line.md)
* [text-decoration-style](css/text-decoration-style.md)
* [text-overflow](css/text-overflow.md)
* [text-decoration-thickness](css/text-decoration-thickness.md)
* [top](css/top.md)
* [transform](css/transform.md)
* [transform-origin](css/transform-origin.md)
* [transition](css/transition.md)
* [transition-delay](css/transition-delay.md)
* [transition-duration](css/transition-duration.md)
* [transition-property](css/transition-property.md)
* [transition-timing-function](css/transition-timing-function.md)
* [width](css/width.md)
* [z-index](css/z-index.md)
* [visibility](css/visibility.md)
* [lines](css/lines.md)
* [align-self](css/align-self.md)
* [pointer-events](css/pointer-events.md)
* UVUE DOM
* [DOM概述](dom/)
* [Element](dom/element.md)
* [DOMRect](dom/domrect.md)
* [CSSStyleDeclaration](dom/cssstyledeclaration.md)
* [DrawableContext](dom/drawablecontext.md)
* 运行和调试
* [真机运行](https://uniapp.dcloud.net.cn/tutorial/run/run-app.html)
* [Android审查元素](debug/android-inspector.md)
* [性能优化](performance.md)
* [uni错误规范](https://uniapp.dcloud.net.cn/tutorial/err-spec.html)
* [自动化测试](https://uniapp.dcloud.net.cn/worktile/auto/quick-start.html)
* [概述](README.md)
* 全局
* [getApp](get-app.md)
* [getCurrentPages](get-current-pages.md)
* 基础
* [事件总线event-bus](event-bus.md)
* [拦截器](interceptor.md)
* [获取启动参数](get-launch-options-sync.md)
* [退出应用](exit.md)
* 页面
* [页面跳转](navigator.md)
* [设置导航条颜色](set-navigation-bar-color.md)
* [设置导航条标题](set-navigation-bar-title.md)
* [设置tabbar](set-tabbar.md)
* [页面下拉刷新](pull-down-refresh.md)
* [将页面滚动到指定位置](page-scroll-to.md)
* 元素节点
* [获取element](get-element.md)
* [获取node](nodes-info.md)
* 界面
* [交互反馈](prompt.md)
* [动态加载字体](load-font-face.md)
* [截屏事件](capturescreen.md)
* 网络
* [发起请求request](request.md)
* [上传文件](upload-file.md)
* [下载文件](download-file.md)
* [获取设备网络状态](get-network-type.md)
* [websocket](websocket-global.md)
* 设备
* [获取系统信息](get-system-info.md)
* [获取设备信息](get-device-info.md)
* [获取窗口信息](get-window-info.md)
* [获取app基础信息](get-app-base-info.md)
* [获取app授权设置](get-app-authorize-setting.md)
* [获取系统设置](get-system-setting.md)
* [获取电量信息](get-battery-info.md)
* [安装 APK](install-apk.md)
* [wifi](wifi.md)
* [内存](memory.md)
* [截屏事件](capturescreen.md)
* 媒体
* [拍照和相册选择](choose-image.md)
* [图片预览](preview-image.md)
* [保存图片到相册](save-image-to-photos-album.md)
* 位置
* [获取当前位置](get-location.md)
* 推送
* [推送](push.md)
* 数据存储
* [storage(key-value存储)](storage.md)
* 登录和验证
* [实人认证](facial-recognition-verify.md)
* 组件上下文对象
* [web-view组件上下文对象](create-webview-context.md)
* [video组件上下文对象](create-video-context.md)
* uniCloud客户端API
* [概述](../unicloud/README.md)
* [云函数](../unicloud/function.md)
* [云对象](../unicloud/object.md)
* [数据库](../unicloud/database.md)
* [云存储](../unicloud/storage.md)
* [其他API](../unicloud/utils.md)
* [其他EXT API](ext.md)
\ No newline at end of file
# 其它api
插件市场和hello示例中还有一批可替代uni内置api的插件或示例代码,比如:
- [剪切板](https://ext.dcloud.net.cn/search?q=%E5%89%AA%E5%88%87%E6%9D%BF&orderBy=Relevance&cat1=8&cat2=81):uni.setClipboardData、uni.getClipboardData
- [拨打电话](https://ext.dcloud.net.cn/plugin?id=15235):uni.makePhoneCall
- [打开三方应用](https://gitcode.net/dcloud/hello-uni-app-x/-/blob/dev/pages/template/schema/schema.uvue):打开浏览器、应用商店、地图并传参。
- [分享](https://gitcode.net/dcloud/hello-uni-app-x/-/blob/dev/pages/template/share/share.uvue):uni.shareWithSystem
- 打开文件:uni.openDocument。[hello uts示例](](https://gitcode.net/dcloud/hello-uts/-/blob/dev/uni_modules/uts-nativepage/utssdk/app-android/index.uts))、[插件市场](https://ext.dcloud.net.cn/plugin?id=12731)
- [扫码](https://ext.dcloud.net.cn/search?q=%E6%89%AB%E7%A0%81&cat1=8&type=UpdatedDate)
- [蓝牙](https://ext.dcloud.net.cn/search?q=%E8%93%9D%E7%89%99&orderBy=Relevance&cat1=8&cat2=81)
- [nfc](https://ext.dcloud.net.cn/search?q=nfc&orderBy=Relevance&cat1=8&cat2=81)
- [文件选择](https://ext.dcloud.net.cn/search?q=%E6%96%87%E4%BB%B6%E9%80%89%E6%8B%A9&cat1=8&cat2=81)
* [pages.json](pagesjson.md)
* [main.uts](https://uniapp.dcloud.net.cn/collocation/main.html)
* [app.uvue](https://uniapp.dcloud.net.cn/collocation/App.html)
* [manifest.json](manifest.md)
* [AndroidManifest.xml](https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-android.html)
* [uni.scss](https://uniapp.dcloud.net.cn/collocation/uni-scss.html)
\ No newline at end of file
* [概述](README.md)
* [条件编译](https://uniapp.dcloud.net.cn/tutorial/platform.html)
* [编译运行环境](https://uniapp.dcloud.net.cn/worktile/running-env.html)
\ No newline at end of file
* [概述](README.md)
* [公共属性和事件](common.md)
* 内置组件```{"collapsable": false}```
* [view](view.md)
* [scroll-view](scroll-view.md)
* [list-view](list-view.md)
* [sticky](sticky.md)
* [swiper](swiper.md)
* [navigator](navigator.md)
* [text](text.md)
* [rich-text](rich-text.md)
* [image](image.md)
* [input](input.md)
* [textarea](textarea.md)
* [button](button.md)
* [checkbox](checkbox-group.md)
* [radio](radio-group.md)
* [picker-view](picker-view.md)
* [progress](progress.md)
* [slider](slider.md)
* [switch](switch.md)
* [form](form.md)
* [video](video.md)
* [web-view](web-view.md)
* [animation-view](animation-view.md)
* [unicloud-db](unicloud-db.md)
\ No newline at end of file
......@@ -108,4 +108,5 @@ list-view组件有默认的下拉刷新样式,如果想自定义,则需使
### Bug & Tips@tips
- 暂不支持reverse,目前还不能开发im那样的倒序列表
- 多列瀑布流是另外的组件,后续会提供
- 多列瀑布流是另外的组件,后续会提供
- list-view组件的overflow属性不支持配置visible
......@@ -94,3 +94,6 @@ onNestedPreScroll(event: NestedPreScrollEvent) {
<!-- UTSCOMJSON.scroll-view.reference -->
### Bug & Tips@tips
- scroll-view组件的overflow属性不支持配置visible
\ No newline at end of file
* [CSS概述](README.md)
* [align-content](align-content.md)
* [align-items](align-items.md)
* [background](background.md)
* [background-clip](background-clip.md)
* [background-color](background-color.md)
* [background-image](background-image.md)
* [border](border.md)
* [border-bottom-color](border-bottom-color.md)
* [border-bottom-left-radius](border-bottom-left-radius.md)
* [border-bottom-right-radius](border-bottom-right-radius.md)
* [border-bottom-style](border-bottom-style.md)
* [border-bottom-width](border-bottom-width.md)
* [border-color](border-color.md)
* [border-left-color](border-left-color.md)
* [border-left-style](border-left-style.md)
* [border-left-width](border-left-width.md)
* [border-radius](border-radius.md)
* [border-right-color](border-right-color.md)
* [border-right-style](border-right-style.md)
* [border-right-width](border-right-width.md)
* [border-style](border-style.md)
* [border-top-color](border-top-color.md)
* [border-top-left-radius](border-top-left-radius.md)
* [border-top-right-radius](border-top-right-radius.md)
* [border-top-style](border-top-style.md)
* [border-top-width](border-top-width.md)
* [border-width](border-width.md)
* [bottom](bottom.md)
* [box-shadow](box-shadow.md)
* [box-sizing](box-sizing.md)
* [color](color.md)
* [display](display.md)
* [flex](flex.md)
* [flex-basis](flex-basis.md)
* [flex-direction](flex-direction.md)
* [flex-flow](flex-flow.md)
* [flex-grow](flex-grow.md)
* [flex-shrink](flex-shrink.md)
* [flex-wrap](flex-wrap.md)
* [font-family](font-family.md)
* [font-size](font-size.md)
* [font-style](font-style.md)
* [font-weight](font-weight.md)
* [height](height.md)
* [justify-content](justify-content.md)
* [left](left.md)
* [line-height](line-height.md)
* [margin](margin.md)
* [margin-bottom](margin-bottom.md)
* [margin-left](margin-left.md)
* [margin-right](margin-right.md)
* [margin-top](margin-top.md)
* [max-height](max-height.md)
* [max-width](max-width.md)
* [min-height](min-height.md)
* [min-width](min-width.md)
* [opacity](opacity.md)
* [overflow](overflow.md)
* [padding](padding.md)
* [padding-bottom](padding-bottom.md)
* [padding-left](padding-left.md)
* [padding-right](padding-right.md)
* [padding-top](padding-top.md)
* [position](position.md)
* [right](right.md)
* [text-align](text-align.md)
* [text-decoration](text-decoration.md)
* [text-decoration-color](text-decoration-color.md)
* [text-decoration-line](text-decoration-line.md)
* [text-decoration-style](text-decoration-style.md)
* [text-overflow](text-overflow.md)
* [text-decoration-thickness](text-decoration-thickness.md)
* [top](top.md)
* [transform](transform.md)
* [transform-origin](transform-origin.md)
* [transition](transition.md)
* [transition-delay](transition-delay.md)
* [transition-duration](transition-duration.md)
* [transition-property](transition-property.md)
* [transition-timing-function](transition-timing-function.md)
* [width](width.md)
* [z-index](z-index.md)
* [visibility](visibility.md)
* [lines](lines.md)
* [align-self](align-self.md)
* [pointer-events](pointer-events.md)
\ No newline at end of file
......@@ -28,7 +28,7 @@ DOM 是页面元素内容的结构数据。DOM 模型用一个逻辑树来表示
Android和iOS的原生view,有一些底层的高性能绘制能力,这些API的调用,需要先获取到 Element 对象,然后再调用其方法。
[性能](performance.md)章节,对这2个场景有详细的阐述。
[性能](../performance.md)章节,对这2个场景有详细的阐述。
## DOM元素对象@getDomNode
......
* [DOM概述](README.md)
* [Element](element.md)
* [DOMRect](domrect.md)
* [CSSStyleDeclaration](cssstyledeclaration.md)
* [DrawableContext](drawablecontext.md)
\ No newline at end of file
# ext api
# 其它api
基于uts实现的、以插件方式存在的、uni-app和uni-app x均兼容支持的api
- [uni实人认证](https://uniapp.dcloud.net.cn/uniCloud/frv/dev.html)
插件市场还有一批可替代uni内置api的插件,比如在插件市场搜索:
- [剪切板](https://ext.dcloud.net.cn/search?q=%E5%89%AA%E5%88%87%E6%9D%BF&orderBy=Relevance&cat1=8&cat2=81)
- [拨打电话](https://ext.dcloud.net.cn/plugin?id=15235)
插件市场和hello示例中还有一批可替代uni内置api的插件或示例代码,比如
- [剪切板](https://ext.dcloud.net.cn/search?q=%E5%89%AA%E5%88%87%E6%9D%BF&orderBy=Relevance&cat1=8&cat2=81):uni.setClipboardData、uni.getClipboardData
- [拨打电话](https://ext.dcloud.net.cn/plugin?id=15235):uni.makePhoneCall
- [打开三方应用](https://gitcode.net/dcloud/hello-uni-app-x/-/blob/dev/pages/template/schema/schema.uvue):打开浏览器、应用商店、地图并传参。
- [分享](https://gitcode.net/dcloud/hello-uni-app-x/-/blob/dev/pages/template/share/share.uvue):uni.shareWithSystem
- 打开文件:uni.openDocument。[hello uts示例](](https://gitcode.net/dcloud/hello-uts/-/blob/dev/uni_modules/uts-nativepage/utssdk/app-android/index.uts))、[插件市场](https://ext.dcloud.net.cn/plugin?id=12731)
- [扫码](https://ext.dcloud.net.cn/search?q=%E6%89%AB%E7%A0%81&cat1=8&type=UpdatedDate)
- [蓝牙](https://ext.dcloud.net.cn/search?q=%E8%93%9D%E7%89%99&orderBy=Relevance&cat1=8&cat2=81)
- [nfc](https://ext.dcloud.net.cn/search?q=nfc&orderBy=Relevance&cat1=8&cat2=81)
- [文件选择](https://ext.dcloud.net.cn/search?q=%E6%96%87%E4%BB%B6%E9%80%89%E6%8B%A9&cat1=8&cat2=81)
\ No newline at end of file
- [文件选择](https://ext.dcloud.net.cn/search?q=%E6%96%87%E4%BB%B6%E9%80%89%E6%8B%A9&cat1=8&cat2=81)
# uni-app x 插件生态
`uni-app x`积极拥抱社区,创建了开放、兼容的插件系统。
uni插件市场,[https://ext.dcloud.net.cn](https://ext.dcloud.net.cn),是uni-app x官方插件生态集中地。支持前端组件、uts sdk、页面模板、项目模板、uts插件等多种类型。
请注意尽量在官方市场寻找插件,npm等三方市场没有uni-app兼容性描述,很容易下载到无法跨平台的、仅适配web的插件。
uni-app需要兼容多个平台,在统一和个性化之间,uni-app的设计原则一直是:把常用的部分uni化,不常用的各平台特色不限制使用,都可以在条件编译里调用。
- 编译到web时
可调用浏览器的所有api,可使用web生态的各种库,包括npm。
- 编译到Android时
可调用Android os的所有api,可使用所有适配Android的sdk,包括使用gradle仓储。
在编译到Android时,如需使用web生态的内容,有2种方式:
1. 在uni-app x的 web-view 组件里使用web库。uni-app x提供了web-view组件内的js和uts通信的机制。或者集成一个v8/quickjs等库来调用js生态的内容。
2. 把for web的ts库适配为uts库。目前npm上很多流行库已经是ts编写的了,稍加适配即可兼容uts。
在插件市场中,勾选搜索栏下方的 uni-app x 的 checkbox,即可浏览适配了uni-app x的插件。
插件市场的uts插件分类,适用于原生能力的封装。uts插件在uni-app和uni-app x中都支持,并且支持计费。
\ No newline at end of file
* [插件全景描述](/uni-app-x/plugin/)
* [插件市场介绍](https://uniapp.dcloud.net.cn/plugin/plugin-ext-introduction.html)
* [uni_modules](https://uniapp.dcloud.net.cn/plugin/uni_modules.html)
* uts插件
* [uts插件开发入门](/plugin/uts-plugin.md)
* [uts页面组件开发入门](/plugin/uts-component.md)
* [uts中使用uni api](/plugin/uts-uni-api.md)
* [Android平台uts开发指南](/plugin/uts-for-android.md)
* [iOS平台uts开发指南](/plugin/uts-for-ios.md)
* [使用CocoaPods依赖](/plugin/uts-ios-cocoapods.md)
* [插件作者专区](https://uniapp.dcloud.net.cn/plugin/publish.html)
......@@ -42,8 +42,6 @@ uni-app x的真机运行基座,和uni-app js引擎版不同,是一个绿色
uni-app x运行时,控制台右上角可以选择开启原生日志。
公测版带宽有限,打包自定义基座或正式包时可能更慢。
目前仅支持真机运行,不支持断点debug。
## 发行
......@@ -53,4 +51,4 @@ uni-app x目前只能打包apk。
不支持wgt热更新、不支持安心打包。
下载到项目下的uts插件可打包含入。但内置模块暂不支持拆除,比如video。
\ No newline at end of file
下载到项目下的uts插件可打包含入。
\ No newline at end of file
......@@ -145,6 +145,7 @@ uni-app x 目前只包括常用的组件和API。
- [x] animation-view // 已有uts插件
- [x] unicloud-db // 3.93+
- [x] sticky-header // 3.93+
- [x] sticky-section// 3.98+
- [x] form //3.97+
不支持的组件及替代方案
......@@ -219,7 +220,7 @@ uni.的api,大多是uts开发的,它们会陆续开源在[uni-api](https://g
## 7. 插件生态
uni-app x编译到web和小程序时,所有js库仍然可用。但在App平台,由于没有js引擎,所以无法使用js生态,包括npm
uni-app x编译到web和小程序时,所有js库仍然可用。但在App平台,由于没有js引擎,所以无法使用js生态。
uni-app x App平台的插件生态来源于:
1. 原生生态。比如上述示例代码中获取手机型号。以及各种原生sdk的直接调用。
......@@ -241,8 +242,7 @@ uvue组件、uts sdk、uni-app x前端页面/项目模板。这些前端代码
后续DCloud会提供uni-app x编译为web,届时这些插件也可以适配到uni-app js引擎版的全端。
uts插件分类直达:[https://ext.dcloud.net.cn/search?fePlatform=1&fePlatform2=34&type=UpdatedDate](https://ext.dcloud.net.cn/search?fePlatform=1&fePlatform2=34&type=UpdatedDate)
在插件市场搜索框下方有uni-app x的checkbox,勾选可见到所有适配uni-app x的插件:[https://ext.dcloud.net.cn/?uni-appx=1](https://ext.dcloud.net.cn/?uni-appx=1)
一般情况下,原生库的能力是大于js库的。不太可能有一个功能必须使用js库才能使用。比如md5,js有库,原生也有库,调用一个jar也很方便。
......@@ -256,13 +256,12 @@ uts插件分类直达:[https://ext.dcloud.net.cn/search?fePlatform=1&fePlatfor
- 全端支持:一期只有Android。虽然uts语言支持swift,可以写原生插件,但iOS版的uvue还未开发完毕。对于iOS或其他小程序、web平台,开发者可将uvue文件后缀改为vue或nvue,如果没有写Android专有代码,那么也可以使用uni-app js引擎版编译到其他平台,包括iOS App、web及各家小程序。尤其在app-iOS上,由于设备性能本就优秀,所以js的方案的性能也足够满足很多开发者。后期官方会提供更完善的 uni-app x的全端支持。
- 一期不支持:横屏切换、暗黑模式、自定义路由、多语言、无障碍
- 一期不支持:uni-ad。另外包括微信、支付宝、个推、地图等三方sdk封装官方均未启动
- 一期不支持国际区账户创建和打包uni-app x,仅大陆区开发者账户可用。
欢迎去[需求墙](https://vote.dcloud.net.cn/#/?name=uni-app%20x)投票,告诉我们你的需求优先级。
## 自动化测试
uni-app x 从源头重视产品质量,第一个版本就支持自动化测试。并为uni-app x产品编写了数万行自动化测试例代码。
uni-app x 从源头重视产品质量,第一个版本就支持自动化测试。并为uni-app x产品编写了数万行自动化测试例代码。
uni-app x 的自动化测试方案和 uni-app js版相同,自动化测试脚本使用js编写(注意不是uts)。整个自动化测试环境,运行在电脑端。
......
......@@ -10,7 +10,7 @@
**兼容说明**
- `HBuilderX 3.9+`支持阿里云,`3.91+`支持腾讯云
- `HBuilderX 3.9+`支持阿里云,`3.91+`支持腾讯云`3.98+`支持支付宝小程序云
- `HBuilderX 3.91+`支持clientDB,但不支持getOne和multiSend
......
......@@ -9,7 +9,7 @@
* [类class](class.md)
* [接口interface](interface.md)
* [类型兼容性](type-compatibility.md)
* [泛型](./generics.md)
* [泛型](generics.md)
* [模块module](module.md)
* 内置对象和 API
* [Number](buildin-object-api/number.md)
......@@ -33,10 +33,3 @@
* [UTSiOSHookProxy](utsioshookproxy.md)
* [关键词](keywords.md)
<!-- * [学习资料](learning.md) -->
* uts插件
* [uts插件开发入门](/plugin/uts-plugin.md)
* [uts页面组件开发入门](/plugin/uts-component.md)
* [uts中使用uni api](/plugin/uts-uni-api.md)
* [Android平台uts开发指南](/plugin/uts-for-android.md)
* [iOS平台uts开发指南](/plugin/uts-for-ios.md)
* [使用CocoaPods依赖](/plugin/uts-ios-cocoapods.md)
......@@ -1517,7 +1517,7 @@ console.log(JSON.stringify(t)) //输出: {"a+b":"value 1","a-b":"value 2","class
HBuilderX 3.9起内置了一个json转type工具,在`json编辑器`中选择一段内容点右键,选择`json转type`,即可根据json数据内容自动推导生成type定义,如果json内容涉及转义,工具也会自动转义。
![](../uni-app-x/static/json2type.png)
![](../static/json2type.png)
把右侧生成的type复制到代码里即可,那个IRootType的名字自己按需修改。
......
### 工程化
uni-app x 支持的工程化支持,主要包括:
- 版本管理控制:如git/svn
- 运行环境管理
- 自动化测试
* [概述](/uni-app-x/worktile/)
* [Git/SVN](https://uniapp.dcloud.net.cn/worktile/git-svn.html)
* [编译运行环境](https://uniapp.dcloud.net.cn/worktile/running-env.html)
* [自动化测试](https://uniapp.dcloud.net.cn/worktile/auto/quick-start.html)
\ No newline at end of file
......@@ -1504,6 +1504,34 @@ let res = await db.collection('orders').aggregate()
聚合阶段。根据条件过滤文档,并且把符合条件的文档传递给下一个流水线阶段。
**已知问题**
支付宝小程序云中,使用match管道过滤时,如果传入的参数是一个对象,将按照字段的值进行相等匹配,包含字段顺序。
例如:过滤内存是8g的计算机商品
```js
// 错误示例
let res = await db.collection('goods')
.aggregate()
.match({
category: 'computer',
type: {
memory: 8,
}
})
.end()
// 正确示例
let res = await db.collection('goods')
.aggregate()
.match({
category: 'computer',
"type.memory": 8
})
.end()
```
**API 说明**
**match 的形式如下:**
......
......@@ -177,6 +177,28 @@ limit,即返回记录的最大数量,默认值为100,也就是不设置lim
collection.where()
**已知问题**
支付宝小程序云中,使用where查询时,如果传入的参数是一个对象,将按照字段的值进行相等匹配,包含字段顺序。
例如:查询内存是8g的计算机商品
```js
// 错误示例
let res = await db.collection('goods').where({
category: 'computer',
type: {
memory: 8,
}
}).get()
// 正确示例
let res = await db.collection('goods').where([{
category: 'computer',
"type.memory": 8
}]).get()
```
**在聚合操作中请使用match**
设置过滤条件,where 可接收对象作为参数,表示筛选出拥有和传入对象相同的 key-value 的文档。比如筛选出所有类型为计算机的、内存为 8g 的商品:
......@@ -1747,28 +1769,28 @@ let res = await db.collection('user').where({
geometry: line
})
}).get()
```
#### unicloud-map 云端一体组件
若想要在地图上展示自定义的POI信息,试试 `unicloud-map` 云端一体组件,该组件将前端地图组件与云端数据库无缝连接,只需写一个`<unicloud-map>`组件,即可从数据库中获取附近的POI信息并在地图上呈现。无论是静态还是动态的POI,甚至更多自定义功能,都轻松实现。让地图开发变得愉快又高效。
> 下载地址:[https://ext.dcloud.net.cn/plugin?name=unicloud-map](https://ext.dcloud.net.cn/plugin?name=unicloud-map)
> 文档地址:[https://uniapp.dcloud.net.cn/uniCloud/unicloud-map.html](https://uniapp.dcloud.net.cn/uniCloud/unicloud-map.html)
**渲染静态POI运行效果图**
通过从数据库获取POI数据,渲染到地图上
![](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/3707/409.png)
**渲染动态POI运行效果图**
通过从数据库获取POI数据,并通过 uni-id-common 内的路线规划API,计算路线、距离、时间
**运行效果图**
```
#### unicloud-map 云端一体组件
若想要在地图上展示自定义的POI信息,试试 `unicloud-map` 云端一体组件,该组件将前端地图组件与云端数据库无缝连接,只需写一个`<unicloud-map>`组件,即可从数据库中获取附近的POI信息并在地图上呈现。无论是静态还是动态的POI,甚至更多自定义功能,都轻松实现。让地图开发变得愉快又高效。
> 下载地址:[https://ext.dcloud.net.cn/plugin?name=unicloud-map](https://ext.dcloud.net.cn/plugin?name=unicloud-map)
> 文档地址:[https://uniapp.dcloud.net.cn/uniCloud/unicloud-map.html](https://uniapp.dcloud.net.cn/uniCloud/unicloud-map.html)
**渲染静态POI运行效果图**
通过从数据库获取POI数据,渲染到地图上
![](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/3707/409.png)
**渲染动态POI运行效果图**
通过从数据库获取POI数据,并通过 uni-id-common 内的路线规划API,计算路线、距离、时间
**运行效果图**
![](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/3707/408.png)
## 事务@transaction
......
# 扩展存储API
# 开发指南
扩展存储介绍,待补充
## 扩展存储与原生云存储的区别
定义:
扩展存储:通过扩展存储创建的云存储
支付宝云存储:支付宝云服务空间自带的云存储
阿里云存储:阿里云服务空间自带的云存储
腾讯云存储:腾讯云服务空间自带的云存储
|功能项 |扩展储存 |支付宝云存储 |阿里云存储 |腾讯云存储 |
|:-: |:-: |:-: |:-: |:-: |
|自定义域名 |支持 |不支持 |不支持 |不支持 |
|文件权限 | 可设置私有文件 |可设置私有目录 |不支持 |不支持 |
|上传权限控制| 可自由控制 |不可控制 |不可控制 |不可控制 |
## 开通扩展存储服务@open
参考[开通服务](uniCloud/ext-storage/open.md)
## 费用说明@price
参考[费用说明](uniCloud/ext-storage/price.md)
## 为云函数启用uni-cloud-ext-storage扩展库@use-in-function
## 启用uni-cloud-ext-storage扩展库@use-in-function
扩展存储是单独的扩展库,开发者需手动将uni-cloud-ext-storage扩展库添加到云函数或云对象的依赖中。
......@@ -40,7 +12,7 @@
## API
### 获取扩展存储管理对象
### 获取扩展存储管理对象@getExtStorageManager
云端在操作扩展存储前,需要先获取 extStorageManager 对象实例,然后再通过 extStorageManager.xxx 调用对应的API
......@@ -49,7 +21,7 @@
```js
const extStorageManager = uniCloud.getExtStorageManager({
provider: "qiniu", // 扩展存储供应商
domain: "你的扩展存储域名", // 带http协议头的域名地址
domain: "example.com", // 域名地址
});
```
......@@ -58,9 +30,9 @@ const extStorageManager = uniCloud.getExtStorageManager({
|参数名 |类型 |必填 |默认值 |说明 |
|:-: |:-: |:-: |:-: |:-: |
|provider |String |是 |- |扩展存储供应商,可选<br/>qiniu: 七牛云|
|domain |String |是 |- |你的扩展存储域名(带http协议头的域名地址) |
|domain |String |是 |- |扩展储存域名(域名地址)如:example.com |
### 获取前端上传参数
### 获取前端上传参数@getUploadFileOptions
接口名:getUploadFileOptions
......@@ -82,12 +54,12 @@ module.exports = {
// 然后获取 extStorageManager 对象实例
const extStorageManager = uniCloud.getExtStorageManager({
provider: "qiniu",
domain: "你的扩展存储域名", // 带http协议头的域名地址
domain: "example.com", // 域名地址
});
// 最后调用 extStorageManager.getUploadFileOptions
let uploadFileOptionsRes = extStorageManager.getUploadFileOptions({
cloudPath: cloudPath,
cover: false, // 如果返回前端,建议设置false,代表仅新增,不可覆盖
allowUpdate: false, // 是否允许覆盖更新,如果返回前端,建议设置false,代表仅新增,不可覆盖
});
return uploadFileOptionsRes;
}
......@@ -99,7 +71,7 @@ module.exports = {
|参数名 |类型 |必填 |默认值 |说明 |
|:-: |:-: |:-: |:-: |:-: |
|cloudPath |String |否 |- |云端文件路径(不填会自动生成) |
|cover |Boolean |否 | false |是否允许覆盖 true:可覆盖 false:仅新增,不可覆盖 |
|allowUpdate |Boolean |否 | false |是否允许覆盖更新 true:可覆盖 false:仅新增,不可覆盖 |
#### 响应参数
......@@ -148,7 +120,7 @@ uni.chooseImage({
});
```
### 云端直传文件
### 云端直传文件@uploadFile
接口名:uploadFile
......@@ -159,7 +131,7 @@ uni.chooseImage({
```js
const extStorageManager = uniCloud.getExtStorageManager({
provider: "qiniu",
domain: "你的扩展存储域名", // 带http协议头的域名地址
domain: "example.com", // 域名地址
});
// 文件的base64值
let base64 =
......@@ -172,7 +144,7 @@ let fileContent = new Buffer(base64, 'base64');
let res = await extStorageManager.uploadFile({
cloudPath: `${Date.now()}.png`, // 云端文件名,不填则自动生成
fileContent, // 要上传的文件内容
cover: false, // 是否允许覆盖
allowUpdate: false, // 是否允许覆盖
});
console.log('uploadFile: ', res);
```
......@@ -183,7 +155,7 @@ console.log('uploadFile: ', res);
|:-: |:-: |:-: |:-: |:-: |
|fileContent|Buffer |是 |- |文件内容 |
|cloudPath |String |否 |- |云端文件路径(不填会自动生成) |
|cover |Boolean|否 | false |是否允许覆盖 true:可覆盖 false:仅新增,不可覆盖|
|allowUpdate |Boolean|否 | false |是否允许覆盖更新 true:可覆盖 false:仅新增,不可覆盖|
#### 响应参数
......@@ -193,7 +165,7 @@ console.log('uploadFile: ', res);
|fileID |String |文件ID |
|fileURL |String |文件URL(如果是私有权限的文件,则此URL是无法直接访问的) |
### 获取临时下载链接
### 获取临时下载链接@getTempFileURL
接口名:getTempFileURL
......@@ -206,7 +178,7 @@ console.log('uploadFile: ', res);
```js
const extStorageManager = uniCloud.getExtStorageManager({
provider: "qiniu",
domain: "你的扩展存储域名", // 带http协议头的域名地址
domain: "example.com", // 域名地址
});
let res = extStorageManager.getTempFileURL({
fileList: ["qiniu://test.jpg"], // 私有文件地址列表
......@@ -235,7 +207,7 @@ return res;
|fileID |String |文件ID |
|cloudPath |String |文件云端路径 |
### 删除文件
### 删除文件@deleteFile
接口名:deleteFile
......@@ -246,7 +218,7 @@ return res;
```js
const extStorageManager = uniCloud.getExtStorageManager({
provider: "qiniu",
domain: "你的扩展存储域名", // 带http协议头的域名地址
domain: "example.com", // 域名地址
});
let res = await extStorageManager.deleteFile({
fileList: ["qiniu://test.jpg"], // 私有文件地址列表
......@@ -267,7 +239,7 @@ return res;
|:-: |:-: |:-: |
|fileList |Array|删除结果组成的数组。 |
### 修改文件状态
### 修改文件状态@updateFileStatus
接口名:updateFileStatus
......@@ -280,7 +252,7 @@ return res;
```js
const extStorageManager = uniCloud.getExtStorageManager({
provider: "qiniu",
domain: "你的扩展存储域名", // 带http协议头的域名地址
domain: "example.com", // 域名地址
});
let res = await extStorageManager.updateFileStatus({
fileID: "qiniu://test.jpg", // 私有文件id
......@@ -305,7 +277,7 @@ return res;
|errMsg |String |失败描述|
## 常见问题
## 常见问题@question
### 扩展存储可以当前端托管使用吗?
......
# uni扩展存储
因阿里云、腾讯云等serverless厂商未针对uniCloud服务空间提供CDN流量包的销售,uniCloud内置云存储的CDN费用,常被开发者吐槽。
为帮助开发者降低费用,DCloud联合业内其它主流CDN厂商,单独提供了价格更便宜、功能更强大的uniCloud扩展存储。
## 产品优势
uniCloud扩展存储相比uniCloud内置云存储,最大的优势就是:价格更便宜、功能更强大。
**1. 价格更便宜**
uniCloud扩展存储CDN费用采用阶梯计价模式,起步价是0.12元/GB,起步就比uniCloud内置云存储的按量计费**便宜1/3**。随着每月消耗CDN流量的增加,uniCloud扩展存储的价格可比uniCloud内置云存储**便宜50%以上**
uniCloud云存储同样比传统云厂商的CDN便宜,即使你目前的后端业务未使用uniCloud,也可以基于性价比考虑,将对象存储及CDN先迁移到uniCloud扩展存储。
详见:[uniCloud扩展存储费用说明](./price.md)
**2. 功能更强大**
如果你需要存储类似身份证照片等敏感文件时,uniCloud内置存储就有点不太友好。腾讯云虽支持文件权限,但易用性欠缺;阿里云直接不支持私有存储。
uniCloud扩展存储支持文件级别的权限设置,可以精准设置具体文件的公开、私有访问权限,详见[修改文件状态](./dev.md)
更详细的功能对比如下:
|功能项 |扩展储存 |内置存储(支付宝) |内置存储(阿里云) |内置存储(腾讯云)|
|:-: |:-: |:-: |:-: |:-: |
|自定义域名 |支持 |不支持 |不支持 |不支持 |
|文件权限 | 可设置私有文件 |可设置私有目录 |不支持 |不支持 |
|上传权限控制| 可自由控制 |不可控制 |不可控制 |不可控制 |
## 开通服务
### 开通操作步骤
1. 登录[uniCloud web控制台](https://unicloud.dcloud.net.cn/)
2. 选择一个服务空间
3. 选择左侧扩展存储菜单,开通
3. 选择左侧 云存储 - 扩展存储菜单,开通
![](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/3707/ext-storage/439.png)
**注意**
4. 绑定自定义域名
![](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/3707/ext-storage/440.png)
5. 等待域名绑定
![](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/3707/ext-storage/441.png)
6. 设置域名cname
![](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/3707/ext-storage/443.png)
7. 完成,进入扩展存储管理页面
![](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/3707/ext-storage/444.png)
### 注意事项
- 一个空间只能开通一个扩展存储,实例会自动和当前服务空间绑定
- 开通前保证金账户余额需≥200元,扩展存储按量余额需>0元
\ No newline at end of file
1. 一个空间只能开通一个扩展存储,实例会自动和当前服务空间绑定
2. 开通前保证金账户余额需≥200元,扩展存储按量余额需>0元
\ No newline at end of file
......@@ -530,7 +530,7 @@ new db.Geo.MultiPolygon([
uniCloud数据库提供了多种数据导入导出和备份方案。
- init_data.json、index.json等数据库初始化文件文件:`HBuilderX 3.97起支持`常用于插件市场的插件做环境初始化。完整支持数据、索引、schema三部分。不适合处理大量数据,操作可能超时。目前uniCloud web控制台不支持直接导出这一批初始化文件,后续会提供支持
- init_data.json、index.json等数据库初始化文件文件:`HBuilderX 3.97起支持`常用于插件市场的插件做环境初始化。完整支持数据、索引、schema三部分。不适合处理大量数据,操作可能超时。可从uniCloud web控制台云数据库 => 生成初始化数据 导出
- db\_init.json:常用于插件市场的插件做环境初始化。完整支持数据、索引、schema三部分。不适合处理大量数据,操作可能超时。**HBuilderX 3.97及之后版本需要拆分为上面一种方式对应的文件,可以在项目管理器选中db_init.json右键初始化数据库时自动拆分。**
- 数据库回档备份和恢复,不支持schema
- 数据库导入导出,[jsonl格式](https://jsonlines.org/)数据,仅数据,无索引及schema
......
......@@ -20,16 +20,18 @@ HBuilderX有多种发行方式
根据下表,在小程序管理后台设置request合法域名、uploadFile合法域名(如没有上传文件业务,可不设置)。下表的域名均为阿里云或腾讯云自有域名,并非DCloud所属域名。
|服务提供商 |request合法域名 |uploadFile合法域名 |download合法域名 |
|:-: |:-: |:-: |:-: |
|阿里云 |api.next.bspapp.com |请在[uniCloud web控制台](https://unicloud.dcloud.net.cn/)服务空间的总览页面查看|请在[uniCloud web控制台](https://unicloud.dcloud.net.cn/)服务空间的总览页面查看 |
|腾讯云 |tcb-api.tencentcloudapi.com|~~cos.ap-shanghai.myqcloud.com~~ (2023年8月17日腾讯云更新了上传域名,如果遇到小程序因为安全域名无法上传的问题可以把小程序开发工具内提示的不在白名单的域名添加到上传安全域名内) |需要从云存储下载文件的时候才需要配置,不同服务空间域名不同,可以在web控制台查看文件详情里面看到|
| 服务提供商 |request合法域名 |uploadFile合法域名 | download合法域名 |
|:----------:|:-: |:-: |:-----------------------------------------------------------------------:|
| 阿里云 |api.next.bspapp.com |请在[uniCloud web控制台](https://unicloud.dcloud.net.cn/)服务空间的总览页面查看| 请在[uniCloud web控制台](https://unicloud.dcloud.net.cn/)服务空间的总览页面查看 |
| 腾讯云 |tcb-api.tencentcloudapi.com|~~cos.ap-shanghai.myqcloud.com~~ (2023年8月17日腾讯云更新了上传域名,如果遇到小程序因为安全域名无法上传的问题可以把小程序开发工具内提示的不在白名单的域名添加到上传安全域名内) | 需要从云存储下载文件的时候才需要配置,不同服务空间域名不同,可以在web控制台查看文件详情里面看到 |
| 支付宝小程序云 |{spaceId}.api-hz.cloudbasefunction.cn|https://u.object.cloudrun.cloudbaseapp.cn| {spaceId}.normal.cloudstatic.cn |
**注意**
- 如果需要用uni.request请求云存储内的文件,需要将云存储域名(即上表中的download合法域名)配置到request合法域名内
- 阿里云迁移正式版后未重新发布的项目仍会请求公测版地址(api.bspapp.com)
- 如果项目使用了uni-push,还需要将uni-push的socket域名添加到白名单[详情查看](/unipush-v2.md#useinmp)
- 支付宝小程序云的域名是动态的,需要在小程序管理后台配置`{spaceId}.api-hz.cloudbasefunction.cn`,其中`{spaceId}`是服务空间的id,可以在uniCloud web控制台的服务空间总览页面查看
**阿里云查看上传、下载安全域名**
......
......@@ -1167,7 +1167,7 @@ await redis.lpush(key: string, value: string)
**接口形式**
```js
await redis.rpop(key: string)
await redis.lpop(key: string)
```
**入参说明**
......
......@@ -71,13 +71,13 @@ uniCloud腾讯云版支持云存储的文件权限。当上传的文件不希望
#### 请求参数
**Object object**
|参数名 |类型 |必填 |默认值 | 说明 |平台差异说明 |
|:-: |:-: |:-: |:-: |:--------------------------------------------------------------------------------------------------------------:|:-: |
|filePath |String |是 |- | 要上传的文件对象 |- |
|cloudPath |String |是 |- | 使用支付宝小程序云或腾讯云时,表示文件的绝对路径,包含文件名。<br />使用阿里云时,`cloudPath`为云端文件名,传`cloudPathAsRealPath: true`可以让cloudPath作为文件存储路径 |- |
|cloudPathAsRealPath|Boolean |否 |false | 是否以`cloudPath`作为云端文件绝对路径 |仅阿里云支持 |
|fileType |String |- |- | 文件类型,支付宝小程序、钉钉小程序必填,可选image、video、audio |- |
|onUploadProgress |Function |否 |- | 上传进度回调 |- |
|参数名 |类型 |必填 |默认值 | 说明 |平台差异说明 |
|:-: |:-: |:-: |:-: |:-|:-: |
|filePath |String |是 |- | 要上传的文件对象 |- |
|cloudPath |String |是 |- | 使用支付宝小程序云或腾讯云时,表示文件的绝对路径,包含文件名。<br/>使用阿里云时,`cloudPath`为云端文件名,传`cloudPathAsRealPath: true`可以让cloudPath作为文件存储路径|- |
|cloudPathAsRealPath|Boolean |否 |false | 是否以`cloudPath`作为云端文件绝对路径 |仅阿里云支持 |
|fileType |String |- |- | 文件类型,支付宝小程序、钉钉小程序必填,可选image、video、audio|- |
|onUploadProgress |Function |否 |- | 上传进度回调 |- |
**注意**
......@@ -170,13 +170,13 @@ uni.chooseImage({
### getTempFileURL(Object object)
云函数中,把文件的fileid转换为临时URL。临时URL有有效期限制,避免其他人获取URL后可以持续访问该文件。
客户端把文件的fileid转换为临时URL。临时URL有有效期限制,避免其他人获取URL后可以持续访问该文件。
**平台兼容性**
|阿里云 |腾讯云 |
|---- |---- |
|HBuilderX 3.1.0+ |√ |
|阿里云 |腾讯云 |支付宝小程序云|
|---- |---- |----|
|√ |√ |√|
支付宝小程序云与腾讯云获取文件临时下载链接。
......@@ -233,9 +233,9 @@ uniCloud.getTempFileURL({
**平台兼容性**
|阿里云 |腾讯云 |
|---- |---- |
|HBuilderX 3.6.10+(Alpha版)、HBuilderX 3.6.5+(正式版) |不支持 |
|阿里云 |腾讯云 |支付宝小程序云|
|---- |---- |----|
|HBuilderX 3.6.10+(Alpha版)、HBuilderX 3.6.5+(正式版) |不支持 |不支持|
#### 请求参数
......@@ -544,9 +544,9 @@ const uploadRes = await storageSpace.uploadFile({
**平台兼容性**
|阿里云 |腾讯云 |
|---- |---- |
|HBuilderX 3.1.0+ |√ |
| 阿里云 | 腾讯云 | 支付宝小程序云 |
|-----------|------|---------|
| √ | √ | √ |
HBuilderX 3.1.0之前版本如使用阿里云,请在客户端通过`uniCloud.uploadFile`进行上传
......@@ -554,11 +554,11 @@ HBuilderX 3.1.0之前版本如使用阿里云,请在客户端通过`uniCloud.u
**uploadFileOptions参数说明**
| 字段 | 类型 | 必填|默认值 | 说明 |平台差异说明 |
| --- | --- | --- |--- |----------------------------------------------------------------------------------------------------------|--- |
| cloudPath | string| 是 |- | 使用腾讯云或支付宝小程序云时,表示文件的绝对路径,包含文件名。使用阿里云时,`cloudPath`为云端文件名,传`cloudPathAsRealPath: true`可以让cloudPath作为文件存储路径 | |
| fileContent | - | 是 |- | 文件内容,请看下方说明 | |
|cloudPathAsRealPath|Boolean|否 |false | 是否以`cloudPath`作为云端文件绝对路径 |仅阿里云支持 |
| 字段 | 类型 | 必填|默认值 | 说明 |平台差异说明 |
| --- | --- | --- |--- |:----|--- |
| cloudPath | string| 是 |- | 使用腾讯云或支付宝小程序云时,表示文件的绝对路径,包含文件名。<br/>使用阿里云时,`cloudPath`为云端文件名,传`cloudPathAsRealPath: true`可以让cloudPath作为文件存储路径 | |
| fileContent | - | 是 |- | 文件内容,请看下方说明 | |
|cloudPathAsRealPath|Boolean|否 |false | 是否以`cloudPath`作为云端文件绝对路径 |仅阿里云支持 |
**说明**
......@@ -715,9 +715,9 @@ let result = await uniCloud.downloadFile({
**平台兼容性**
|阿里云 |腾讯云 |
|---- |---- |
|HBuilderX 3.6.10+(Alpha版)、HBuilderX 3.6.5+(正式版) |不支持 |
|阿里云 |腾讯云 |支付宝小程序云|
|---- |---- |----|
|HBuilderX 3.6.10+(Alpha版)、HBuilderX 3.6.5+(正式版) |不支持 |不支持|
#### 请求参数
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册