提交 068db2cc 编写于 作者: D DCloud_LXH

Merge branch 'master' of https://github.com/dcloudio/unidocs-zh into vuepress

......@@ -229,6 +229,17 @@ mapContext
|center |LatLng |聚合簇的坐标 |
|markerIds |Array<Number>|该聚合簇内的点标记数据数组 |
`initMarkerCluster(OBJECT)` 结构
|属性 |类型 |默认值 |必填 |说明 |
|:-|:-|:-|:-|:-|
|enableDefaultStyle |boolean |true |否 |启用默认的聚合样式 |
|zoomOnClick |boolean |true |否 |点击已经聚合的标记点时是否实现聚合分离 |
|gridSize |boolean |60 |否 |聚合算法的可聚合距离,即距离小于该值的点会聚合至一起,以像素为单位 |
|success |function | |否 |接口调用成功的回调函数 |
|fail |function | |否 |接口调用失败的回调函数 |
|complete |function | |否 |接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码
......
......@@ -28,7 +28,7 @@ uni.requestPayment是一个统一各平台的客户端支付API,不管是在
|timeStamp|String|微信小程序必填|时间戳从1970年1月1日至今的秒数,即当前的时间。|微信小程序|
|nonceStr|String|微信小程序必填|随机字符串,长度为32个字符以下。|微信小程序|
|package|String|微信小程序必填|统一下单接口返回的 prepay_id 参数值,提交格式如:prepay_id=xx。|微信小程序|
|signType|String|微信小程序必填|签名算法,暂支持 MD5。|微信小程序|
|signType|String|微信小程序必填|签名算法,应与后台下单时的值一致|微信小程序|
|paySign|String|微信小程序必填|签名,具体签名方案参见 [微信小程序支付文档](https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_7&index=3)|微信小程序|
|bannedChannels|Array<String>|否|需要隐藏的支付方式,详见 [百度小程序支付文档](https://smartprogram.baidu.com/docs/develop/api/open_payment/#requestPolymerPayment/)|百度小程序|
|service|Number|字节跳动小程序必填|固定值:1(拉起小程序收银台)开发者如果不希望使用字节跳动小程序收银台,service设置为3/4时,可以直接拉起微信/支付宝进行支付:service=3: 微信API支付,不拉起小程序收银台;service=4: 支付宝API支付,不拉起小程序收银台。其中service=3、4,仅在1.35.0.1+基础库(头条743+)支持|字节跳动小程序|
......@@ -38,6 +38,14 @@ uni.requestPayment是一个统一各平台的客户端支付API,不管是在
|fail|Function|否|接口调用失败的回调函数||
|complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)| |
微信小程序 `signType` 说明
|合法值 |说明 |
|:-|:-|
|MD5 |仅在 v2 版本接口适用 |
|HMAC-SHA256|仅在 v2 版本接口适用 |
|RSA |仅在 v3 版本接口适用 |
#### 注意事项
- APP端,如果你的应用在用户完成支付后;立即给支付的用户push消息通知。会与前端支付回调相互冲突,请延迟执行推送。
......@@ -192,7 +200,7 @@ uni.requestPayment({
"partnerid": "148*****52", // 微信支付商户号
"prepayid": "wx202254********************fbe90000", // 统一下单订单号
"timestamp": 1597935292, // 时间戳(单位:秒)
"sign": "A842B45937F6EFF60DEC7A2EAA52D5A0" // 签名,这里用的 MD5 签名
"sign": "A842B45937F6EFF60DEC7A2EAA52D5A0" // 签名,这里用的 MD5/RSA 签名
},
success(res) {},
fail(e) {}
......
#### uni.setStorage(OBJECT)
#### uni.setStorage(OBJECT) @setstorage
将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口。
**OBJECT 参数说明**
......
Android平台配置CPU类型针对的是为了提高运行效率使用C/C++语言开发生成的so库,需要为各cpu类型平台单独编译生成对应指令的so库。Java语言开发的代码运行在虚拟机中,由虚拟机适配CPU类型,不涉及到此问题。
HBuilder/HBuilderX中使用so库的功能(模块)
- Audio(录音):支持mp3格式
- Geolocation(定位):百度
- LivePush(直播推流)
- Maps(地图):高德、百度
- OAuth(登录鉴权):新浪微博
- Push(消息推送):个推、UniPush
- Share(分享):新浪微博
- Speech(语音输入):百度,**注意:讯飞不支持64位**
- Weex(原生渲染):uni-app(自定义组件模式、nvue页面), **注意:HBuilderX2.1.5及以上版本支持**
> HBuilderX2.7.0+ 调整 云端打包默认不再包含 x86 CPU类型库,减少apk包体积[详情](id=nox86)
> HBuilderX2.1.5+ 开始支持Android平台的新增适配64位CPU类型,云端打包支持配置App支持的CPU类型
> 满足Google Play从2019年8月1日起上传的App必需支持64位CPU的要求。
### CPU类型
HBulderX已适配支持以下主流CPU类型:
- armeabi-v7a
第7代及以上的ARM处理器(ARM32位),市面上大多数手机使用此CPU类型。
- arm64-v8a
第8代、64位ARM处理器(ARM64位),最近两年新发的设备使用此CPU类型,可以兼容使用armeabi-v7a的so库。
- x86
少部分平板使用x86,AS模拟器中选了intel x86时使用x86处理器,以及其它常用三方模拟器通常使用x86
**注意:不勾选x86在模拟器上可能无法正常运行,以下是常见模拟器是否需要包含x86的情况**
- 雷电模拟器:
3.x必须包含x86,否则无法正常运行;4.x无需包含x86。
- 夜神模拟器:
必须包含x86,否则无法正常运行
- MuMu模拟器:
无需包含x86
- 逍遥模拟器:
无需包含x86
- BlueStacks(蓝叠模拟器):
无需包含x86
- 腾讯模拟器(手游助手):
必须包含x86,否则无法正常运行
- 其它模拟器:
未测试验证,建议包含x86,确保在模拟器正常运行
### 配置支持的CPU类型
**可视化界面配置**
打开项目的manifest.json文件,在 “App常用其它设置” -> “Android设置” -> “支持CPU类型” 项中勾选需要支持的CPU类型:
![](https://native-res.dcloud.net.cn/images/uniapp/others/abifilters-manifest.png)
**源码视图配置**
打开项目的manifest.json文件,切换到“源码视图”,根据项目类型进行配置
- uni-app项目
在 "app-plus"->"distribute"->"android" 节点的 abiFilters 属性配置支持的CPU类型,示例如下:
``` js
"app-plus": {
"distribute": {
"android": {
"abiFilters": [
"armeabi-v7a",
"arm64-v8a"
]
//...
},
//...
},
//...
},
//..
```
#### 离线打包配置
使用Android studio打开Android原生项目,打开对应项目的build.gradle文件。
在Android -> defaultConfig下添加支持的CPU类型,如下示例:
```
defaultConfig{
ndk {
abiFilters 'arm64-v8a','armeabi-v7a'
}
}
```
**注意:离线打包仅支持arm64-v8a、armeabi-v7a、x86三种类型,建议根据自己需求选择打包的CPU类型**
### CPU类型选择建议
ARM64位(arm64-v8a)CPU可以兼容ARM32的指令,也就是说只选择armeabi-v7a类型的so库也可以在64位手机上运行,只是没有完全发挥CPU的性能。
选择支持的CPU类型时请参考以下建议:
- 如果不在意apk大小,三种CPU类型都勾选
- 如果在意apk大小,选择ARM32位即可(几乎在所有ARM指令的所有设备上都可正常运行)
- 如果要兼容一些平板和模拟器,选择ARM32位和X86
不是所有模拟都仅支持x86指令,如雷电(4.x)、MuMu等模拟器也是支持ARM指令。
### 查看apk支持的CPU类型
使用解压工具打开apk,在lib目录下可以查看到支持的CPU类型,如下图所示:
![](https://native-res.dcloud.net.cn/images/uniapp/others/abifilters-apk.png)
### 常见问题
#### 上架Google Play市场对CPU类型的要求
提交Google Play时要求支持64位,建议选择"armeabi-v7a"和"arm64-v8a"两个即可,也可以只选择"arm64-v8a"。
**注意:不要勾选"x86"**
#### CPU类型错误安装提示
如果打包选择的CPU类型与设备不兼容,会导致无法正常安装。
通过adb命令安装通常会提示如下错误:
```
Performing Streamed Install
adb: failed to install android_debug.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
```
使用Android Studio自带的x86模拟器,将不包含x86 cpu类型的apk拖到模拟器安装时会弹出如下提示框:
![](https://native-res.dcloud.net.cn/images/uniapp/others/abifilters-error.png)
<a id="nox86"/>
#### HBuilderx2.7.0+ 云端打包默认CPU类型不再包含x86
目前市面上常见的手机都是使用ARM处理器,很少有设备使用x86处理器,因此从HBuilderX2.7.0开始云端打包调整为默认不再包含x86的CPU类型,减少apk包大小:
- uni-app项目
基础功能apk减少5M+,使用的三方SDK及uni原生插件越多,减少的包尺寸越大,具体值取决于其包含的x86类型的so库大小
- 5+App、Wap2App项目
基础功能apk减少100K+,如果使用的三方SDK中存在so库则减少的尺寸较大,具体值取决于其包含的x86类型的so库大小
**注意:大多数模拟器(如夜神)必须包含x86,否则应用启动时可能会白屏,请根据上面教程进行配置**
minSdkVersion用于指定应用兼容的最低Android版本(API等级),默认值为19(即最低支持Android4.4)。
如果APP某些功能无法支持低版本Android系统的设备,可以配置minSdkVersion确保APP只能安装到指定Android版本及以上的设备。HBuilderX中可在manifest.json中进行配置minSdkVersion。
**️注意: App升级时 minSdkVersion 只能增加不能降低,也就是说 minSdkVersion 高的App无法被 minSdkVersion 低的App覆盖安装,开发者需要注意!**
### 设置minSdkVersion
minSdkVersion值为Number类型,且必须为正整数,取值范围参考`Android版本列表`中的`API等级`
**可视化界面配置**
打开项目的manifest.json文件,在 “App常用其它设置” -> “Android设置” -> “minSdkVersion” 项中进行设置:
![](https://native-res.dcloud.net.cn/images/uniapp/others/minsdkversion.png)
**源码视图配置**
打开项目的manifest.json文件,切换到“源码视图”,根据项目类型进行配置。
- uni-app项目
在 "app-plus" -> "distribute" -> "android" 节点的 minSdkVersion 属性配置,示例如下:
``` js
"app-plus": {
"distribute": {
"android":{
"minSdkVersion": 21
}
}
}
```
- 5+App/Wap2App项目项目
在 "plus" -> "distribute" -> "google" 节点的 minSdkVersion 属性配置,示例如下:
```javascript
"plus": {
"distribute": {
"google":{
"minSdkVersion": 21
}
}
}
```
#### 注意事项
配置minSdkVersion后保存提交App云端打包后才能生效,并注意以下问题:
- App模块配置中部分功能使用了三方SDK,三方SDK可能对minSdkVersion有要求,这时会取最大的minSdkVersion值
- uni原生插件也可能对minSdkVersion有要求,这时会取最大的minSdkVersion值
**注意:云端打包时如果其他模块或插件设置了minSdkVersion,最终最大的minSdkVersion值生效**
### Android版本列表
API等级与Android版本对应列表如下:
| API等级 | Android版本号 | Android版本名称 |
| --:-- | --:-- | --:-- |
| 19 | Android4.4 | Kitkat |
| 20 | Android4.4W | Kitkat Watch |
| 21 | Android5.0 | Lollipop |
| 22 | Android5.1 | Lollipop |
| 23 | Android6.0 | Marshmallow |
| 24 | Android7.0 | Nougat |
| 25 | Android7.1 | Nougat |
| 26 | Android8.0 | Oreo |
| 27 | Android8.1 | Oreo |
| 28 | Android9.0 | Pie |
| 29 | Android10.0 | Android Q |
| 30 | Android11.0 | Android R |
| 31 | Android12.0 | Android S |
Android中的url scheme是一种页面跳转协议,通过定义自己的scheme协议,可以非常方便的实现其它三方App调用你的App。
**HBuilderX自带标准真机运行基座的UrlSchemes为"hbuilder://"**,方便开发者调测。
### 设置UrlSchemes
**可视化界面配置**
打开项目的manifest.json文件,在 “App常用其它设置” -> “Android设置” -> “UrlSchemes” 项中进行设置:
![](https://native-res.dcloud.net.cn/images/uniapp/others/urlschemes-android.png)
>注意:
>字符串建议使用小写字母(不要使用特殊字符、中文等),如设置为"test",那么其他App呼起你的app的scheme协议就是"test://";
>多个scheme使用 "," 分割,每个字符串为一个scheme;
>如果可视化界面无法编辑,请切换到“源码视图”删除`schemes`节点数据重新操作。
**源码视图配置**
打开项目的manifest.json文件,切换到“源码视图”,根据项目类型进行配置
- uni-app项目
在 "app-plus"->"distribute"->"android" 节点的 schemes 属性配置UrlSchemes,示例如下:
``` js
"app-plus": {
"distribute": {
"android": {
"schemes": "hbuilder,myuniapp"
//...
},
//...
},
//...
},
//...
```
- 5+App/Wap2App项目
在 "plus"->"distribute"->"google" 节点的 schemes 属性配置UrlSchemes,示例如下:
``` js
"plus": {
"distribute": {
"google": {
"schemes": "hbuilder,myuniapp"
//...
},
//...
},
//...
},
//...
```
> 注:为了向下兼容,HBuilderX源码视图配置时`schemes`属性值支持字符串数组,上面示例中的值也可以这么配置["hbuilder","myuniapp"]
**保存后提交App云端打包生效**
### 浏览器中通过href启动应用
安装应用后,我们可以在H5页面中,通过href直接调用应用:
```html
<a href="test://abc">test:<a><br/>
```
### App中处理scheme启动传递的参数
当其它三方App通过scheme启动App时,可以通过plus.runtime.arguments获取完整的urlscheme字符串。
- uni-app项目
建议在应用生命周期app.vue的`onshow`事件中获取,示例代码如下:
``` js
onShow: function() {
var args= plus.runtime.arguments;
if(args){
// 处理args参数,如直达到某新页面等
}
}
```
- 5+App/Wap2App项目
在HTML页面的js中监听'plusready'和'newintent'事件回调中获取,示例代码如下:
``` js
document.addEventListener('plusready',function(){
checkArguments();
},false);
// 判断启动方式
function checkArguments(){
console.log("plus.runtime.launcher: "+plus.runtime.launcher);
var args= plus.runtime.arguments;
if(args){
// 处理args参数,如直达到某新页面等
}
}
// 处理从后台恢复
document.addEventListener('newintent',function(){
console.log("addEventListener: newintent");
checkArguments();
},false);
```
targetSdkVersion用于指定应用的目标Android版本(API等级),默认值为28(即Android9.0)。
> - HBuilderX3.2.13云端打包调整targetSdkVersion默认值为28
> - HBuilderX云端打包targetSdkVersion默认值为26
设置targetSdkVersion值表示App适配的Android版本(API等级),设置低版本的targetSdkVersion会使APP兼容模式运行,也就可能无法用到新系统的特性,甚至在兼容模式下运行可能存在安全漏洞等问题。
随着Android系统的升级,一些应用市场会要求设置较高的targetSdkVersion才可以提交,HBuilderX中可在项目的manifest.json中进行配置。
**️注意: App升级时 targetSdkVersion 只能增加不能降低,也就是说 targetSdkVersion 高的App无法被 targetSdkVersion 低的App覆盖安装,开发者需要注意!**
### 设置minSdkVersion
minSdkVersion值为Number类型,且必须为正整数,取值范围参考`Android版本列表`中的`API等级`
**可视化界面配置**
打开项目的manifest.json文件,在 “App常用其它设置” -> “Android设置” -> “targetSdkVersion” 项中进行设置:
![](https://native-res.dcloud.net.cn/images/uniapp/others/targetsdkversion.png)
**源码视图配置**
打开项目的manifest.json文件,切换到“源码视图”,根据项目类型进行配置。
- uni-app项目
在 "app-plus" -> "distribute" -> "android" 节点的 targetSdkVersion 属性配置,示例如下:
``` js
"app-plus": {
"distribute": {
"android":{
"targetSdkVersion": 30
}
}
}
```
- 5+App/Wap2App项目项目
在 "plus" -> "distribute" -> "google" 节点的 targetSdkVersion 属性配置,示例如下:
```javascript
"plus": {
"distribute": {
"google":{
"targetSdkVersion": 30
}
}
}
```
**注意:配置targetSdkVersion后保存提交App云端打包后才能生效**
### Android版本列表
API等级与Android版本对应列表如下:
| API等级 | Android版本号 | Android版本名称 |
| --:-- | --:-- | --:-- |
| 19 | Android4.4 | Kitkat |
| 20 | Android4.4W | Kitkat Watch |
| 21 | Android5.0 | Lollipop |
| 22 | Android5.1 | Lollipop |
| 23 | Android6.0 | Marshmallow |
| 24 | Android7.0 | Nougat |
| 25 | Android7.1 | Nougat |
| 26 | Android8.0 | Oreo |
| 27 | Android8.1 | Oreo |
| 28 | Android9.0 | Pie |
| 29 | Android10.0 | Android Q |
| 30 | Android11.0 | Android R |
| 31 | Android12.0 | Android S |
iOS系统中,由于沙盒的限制,导致程序之间相互隔离,需要url scheme协议来实现程序间的通信,通过定义自己的scheme协议,可以非常方便的实现其它三方App调用你的App。
**HBuilderX自带标准真机运行基座的UrlSchemes为"hbuilder://"**,方便开发者调测。
### 设置UrlSchemes
**可视化界面配置**
打开项目的manifest.json文件,在 “App常用其它设置” -> “iOS设置” -> “UrlSchemes” 项中进行设置:
![](https://native-res.dcloud.net.cn/images/uniapp/others/urlschemes-ios.png)
>注意:
>字符串建议使用小写字母(不要使用特殊字符、中文等),如设置为"test",那么其他App呼起你的app的scheme协议就是"test://";
>多个scheme使用 "," 分割,每个字符串为一个scheme;
>如果可视化界面无法编辑,请切换到“源码视图”删除`schemes`节点数据重新操作。
**源码视图配置**
打开项目的manifest.json文件,切换到“源码视图”,根据项目类型进行配置
- uni-app项目
在 "app-plus"->"distribute"->"ios" 节点的 schemes 属性配置UrlSchemes,示例如下:
``` js
"app-plus": {
"distribute": {
"ios": {
"schemes": "hbuilder,myuniapp"
//...
},
//...
},
//...
},
//...
```
- 5+App/Wap2App项目
在 "plus"->"distribute"->"apple" 节点的 schemes 属性配置UrlSchemes,示例如下:
``` js
"plus": {
"distribute": {
"apple": {
"schemes": "hbuilder,myuniapp"
//...
},
//...
},
//...
},
//...
```
> 注:为了向下兼容,HBuilderX源码视图配置时`schemes`属性值支持字符串数组,上面示例中的值也可以这么配置["hbuilder","myuniapp"]
**保存后提交App云端打包生效**
### 浏览器中通过href启动应用
安装应用后,我们可以在H5页面中,通过href直接调用应用:
```html
<a href="test://abc">test:<a><br/>
```
### App中处理scheme启动传递的参数
当其它三方App通过scheme启动App时,可以通过plus.runtime.arguments获取完整的urlscheme字符串。
- uni-app项目
建议在应用生命周期app.vue的`onshow`事件中获取,示例代码如下:
``` js
onShow: function() {
var args= plus.runtime.arguments;
if(args){
// 处理args参数,如直达到某新页面等
}
}
```
- 5+App/Wap2App项目
在HTML页面的js中监听'plusready'和'newintent'事件回调中获取,示例代码如下:
``` js
document.addEventListener('plusready',function(){
checkArguments();
},false);
// 判断启动方式
function checkArguments(){
console.log("plus.runtime.launcher: "+plus.runtime.launcher);
var args= plus.runtime.arguments;
if(args){
// 处理args参数,如直达到某新页面等
}
}
// 处理从后台恢复
document.addEventListener('newintent',function(){
console.log("addEventListener: newintent");
checkArguments();
},false);
```
当webview组件(窗口)加载错误地址(如本地页面不存在)或者访问网络资源失败(如无法访问网络)时会自动显示默认错误页面:
![](https://native-res.dcloud.net.cn/images/uniapp/others/error-default.jpg)
如需修改默认错误页面样式,可以通过以下方法自定义Webview的404等错误页面。
### 设置自定义错误页面
**可视化界面配置**
打开项目的manifest.json文件,在 “App常用其它设置” -> “自定义404错误页面” 下点击 “浏览” 选择页面文件:
![](https://native-res.dcloud.net.cn/images/uniapp/others/error-manifest.png)
> 注:建议使用html文件,并放到项目根目录下的 hybrid/html 文件夹中
**源码视图配置**
打开项目的manifest.json文件,切换到“源码视图”,根据项目类型进行配置错误页面路径,推荐使用本地地址,相对于应用根目录;设置 url 属性值为 "none" 表示关闭自定义错误页面功能,加载页面错误时显示系统默认错误页面内容。
- uni-app项目
在 "app-plus" -> "error" 节点的 url 属性配置自定义错误页面路径,示例如下:
``` js
"app-plus": {
"error": {
"url": "hybrid/html/error.html"
},
//...
},
//...
```
- 5+App/Wap2App项目
在 "plus" -> "error" 节点的 url 属性配置自定义错误页面路径,示例如下:
``` javascript
"plus": {
"error": {
"url": "error.html"
},
//...
},
//...
```
其中url地址推荐使用本地地址,相对于应用根目录。
设置为“none”则关闭跳转到错误页面功能,此时页面显示Webview默认的错误页面内容。
### 错误页面中监听事件
自定义404错误页面时,可能需要在 error.html 页面中获取错误原因,可以通过以下方法监听 "error" 事件获取完整错误信息,示例如下:
```javascript
// 获取错误信息
document.addEventListener("error", function(e){
var url = e.url; // 错误页面的url地址
var href = e.href; // 错误页面的完整路径(包括完整的协议头)
},false);
```
### 运行时动态设置自定义错误页面
如果需要单独自定义某个Webview窗口的错误页面,则需要在创建时通过[WebviewStyle](http://www.dcloud.io/docs/api/zh_cn/webview.html#plus.webview.WebviewStyle)对象的errorPage属性控制:
```js
var styles = {errorPage: "error.html"}; // 设置为“none”则关闭此Webview窗口的跳转到错误页面功能
var webview = plus.webview.create("url", "id", styles);
webview.show();
```
> 注:仅5+App/Wap2App项目支持
### 常见问题
- Android平台使用iframe时如果无法加载页面在不同版本系统上存在差异:
+ Android5.0及以上版本:Webview窗口对象不会加载错误页面,仅iframe节点显示无法加载页面;
+ 5.0以下版本:Webview窗口对象会加载错误页面。
iOS平台为了减少系统资源消耗,应用默认不支持后台运行,切换到后台会停止运行。比如当应用切换到后台时音乐将暂停播放,下次切换到前台继续播放。如果应用切换到后台继续运行如播放音乐,定位等功能,需要配置支持后台运行的能力。
可支持以下能力:
- 后台播放音乐,设置值为"audio"
- 后台获取位置信息(定位),设置值为"location"
### 设置后台运行能力
**可视化界面配置**
打开项目的manifest.json文件,在 “App常用其它设置” -> “iOS设置” -> “后台运行能力” 项中进行设置:
![](https://native-res.dcloud.net.cn/images/uniapp/others/backgroundmodes-manifest.png)
>注意:
>"audio"表示后台播放音乐能力,"location"表示后台定位能力,更多后台能力配置参考苹果官网[UIBackgroundModes文档](https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW22);
>多个后台能力使用 "," 分割;
>如果可视化界面无法编辑,请切换到“源码视图”删除`UIBackgroundModes`节点数据重新操作。
**源码视图配置**
打开项目的manifest.json文件,切换到“源码视图”,根据项目类型进行配置
- uni-app项目
在 "app-plus"->"distribute"->"ios" 节点的 UIBackgroundModes 属性配置后台运行能力,示例如下:
``` js
"app-plus": {
"distribute": {
"ios": {
"UIBackgroundModes": "audio,location"
//...
},
//...
},
//...
},
//...
```
- 5+App/Wap2App项目
在 "plus"->"distribute"->"ios" 节点的 UIBackgroundModes 属性配置后台运行能力,示例如下:
``` js
"plus": {
"distribute": {
"ios": {
"UIBackgroundModes": "audio,location"
//...
},
//...
},
//...
},
//...
```
> 注:为了向下兼容,HBuilderX源码视图配置时`UIBackgroundModes`属性值支持字符串数组,上面示例中的值也可以这么配置["audio","location"]
**保存后提交App云端打包生效**
#### 注意事项
- 配置后需提交云端打包后才能生效,真机运行时请使用[自定义调试基座](https://ask.dcloud.net.cn/article/35115)
真机运行不支持此功能,需要提交到打App云端打包才生效
- 应用切换到后台运行时,需要避免调用同步5+ API(调用直接返回数据的API),在后台运行时此类API将无法同步返回数据
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册