提交 363d56d0 编写于 作者: N ningning

update docs

Signed-off-by: Nningning <3248127340@qq.com>
上级 4bef3bed
# security子系统ChangeLog
## cl.security.1 Random的setSeed功能变更,由异步接口改为同步接口
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
修改前的接口原型:
setSeed(seed : DataBlob, callback : AsyncCallback\<void>) : void;
setSeed(seed : DataBlob) : Promise\<void>;
修改后的接口原型:
setSeed(seed : DataBlob) : void;
**适配指导**
查看API参考中setSeed对应的接口适配指南:
[加解密算法库框架-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cryptoFramework.md)
## cl.security.2 interface DataArray 从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
interface DataArray从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.3 interface EncodingFormat从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
interface EncodingFormat从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.4 interface EncodingBlob 从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
interface EncodingBlob 从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.5 interface CertChainData从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
interface CertChainData从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.6 interface X509Cert从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
interface X509Cert从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.7 function createX509Cert从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
function createX509Cert从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.8 interface X509CrlEntry从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
interface X509CrlEntry从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.9 interface X509Crl从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
interface X509Crl从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.10 function createX509Crl从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
function createX509Crl从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.11 interface CertChainValidator从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
interface CertChainValidator从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.12 function createCertChainValidator从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
function createCertChainValidator从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
**适配指导**
重新import并使用对应的.d.ts文件:
import cryptoCert from '@ohos.security.cert';
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.13 X509Cert 的getPublicKey功能变更,由异步接口改为同步接口
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
修改前的接口原型:
getPublicKey(callback : AsyncCallback\<PubKey>) : void;
getPublicKey() : Promise\<PubKey>;
修改后的接口原型:
getPublicKey() : cryptoFramework.PubKey;
**适配指导**
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.14 X509Cert 的checkValidityWithDate功能变更,由异步接口改为同步接口
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
修改前的接口原型:
checkValidityWithDate(date: string, callback : AsyncCallback\<void>) : void;
checkValidityWithDate(date: string) : Promise\<void>;
修改后的接口原型:
checkValidityWithDate(date: string) : void;
**适配指导**
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.15 X509CrlEntry 的getCertIssuer功能变更,由异步接口改为同步接口
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
修改前的接口原型:
getCertIssuer(callback : AsyncCallback\<DataBlob>) : void;
getCertIssuer() : Promise\<DataBlob>;
修改后的接口原型:
getCertIssuer() : DataBlob;
**适配指导**
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.16 X509CrlEntry 的getRevocationDate功能变更,由异步接口改为同步接口
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
修改前的接口原型:
getRevocationDate(callback : AsyncCallback\<string>) : void;
getRevocationDate() : Promise\<string>;
修改后的接口原型:
getRevocationDate() : string;
**适配指导**
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.17 X509Crl 的isRevoked功能变更,由异步接口改为同步接口
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
修改前的接口原型:
isRevoked(cert : X509Cert, callback : AsyncCallback\<boolean>) : void;
isRevoked(cert : X509Cert) : Promise\<boolean>;
修改后的接口原型:
isRevoked(cert : X509Cert) : boolean;
**适配指导**
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.18 X509Crl 的getRevokedCert功能变更,由异步接口改为同步接口
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
修改前的接口原型:
getRevokedCert(serialNumber : number, callback : AsyncCallback\<X509CrlEntry>) : void;
getRevokedCert(serialNumber : number) : Promise\<X509CrlEntry>;
修改后的接口原型:
getRevokedCert(serialNumber : number) : X509CrlEntry;
**适配指导**
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.19 X509Crl 的getRevokedCertWithCert功能变更,由异步接口改为同步接口
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
修改前的接口原型:
getRevokedCertWithCert(cert : X509Cert, callback : AsyncCallback\<X509CrlEntry>) : void;
getRevokedCertWithCert(cert : X509Cert) : Promise\<X509CrlEntry>;
修改后的接口原型:
getRevokedCertWithCert(cert : X509Cert) : X509CrlEntry;
**适配指导**
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
## cl.security.20 X509Crl 的getTbsInfo功能变更,由异步接口改为同步接口
**变更影响**
影响已发布的JS接口,接口行为发生变更。
应用需要进行适配,才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
修改前的接口原型:
getTbsInfo(callback : AsyncCallback\<DataBlob>) : void;
getTbsInfo() : Promise\<DataBlob>;
修改后的接口原型:
getTbsInfo() : DataBlob;
**适配指导**
查看API参考中对应的接口适配指南:
[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
# xxx子系统ChangeLog
相比最近一个发布版本(包括不限于LTS、Release、Beta、monthly版本)发生了影响契约兼容性(契约兼容:也称语义兼容,指版本演进后,开发者原有程序行为不发生变化)的变更(包括不限于接口名、参数、返回值、所需要的权限、调用顺序、枚举值、配置参数、路径等),则需要在ChangeLog中对变更进行阐述。
## cl.subsystemname.x xxx功能变更, 例:DeviceType属性变更、相机权限变更(尽量概括,不要超过15个字)
每个变更标题前需要附加编号:cl.subsystemname.x。cl为ChangeLog首字母缩写,subsystemname请填写子系统英文标准名称,x表示变更序号(从低到高逐位增加,起始为1)。
以功能维度对变更点进行概括描述。例如:xxx功能的xxx、xxx等发生了xxx变化,开发者需要根据以下说明对应用进行适配。
如果有此变更有对应的需求或设计文档,可以在描述中附上对应的设计文档编号。
**变更影响**
是否影响已发布的接口或者接口行为发生变更,影响的是JS接口还是Native接口。
是否影响在此前版本已开发的应用,即应用是否需要进行适配动才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
列举此功能变更涉及的接口/组件变更。
**适配指导(可选,不涉及则可以删除)**
提供指导,帮助开发者针对相关变更进行适配,使应用可以与新版本兼容。
例:
在xxx文件中将xxx参数修改为xxx。
```
sample code
```
# 帐号子系统ChangeLog
## cl.account_os_account.1 帐号SystemAPI错误信息返回方式变更
已发布的部分帐号SystemAPI使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。从API9开始作以下变更:
异步接口:通过AsyncCallback或Promise的error对象返回错误信息。
同步接口:通过抛出异常的方式返回错误信息。
**变更影响**
基于此前版本开发的应用,需适配变更接口的错误信息返回方式,否则会影响原有业务逻辑。
**关键接口/组件变更**
变更前:
- class UserAuth
- setProperty(request: SetPropertyRequest, callback: AsyncCallback&lt;number&gt;): void;
- setProperty(request: SetPropertyRequest): Promise&lt;number&gt;;
- cancelAuth(contextID: Uint8Array): number;
- class PINAuth
- registerInputer(inputer: Inputer): boolean;
- UserIdentityManager
- cancel(challenge: Uint8Array): number;
变更后:
- class UserAuth
- setProperty(request: SetPropertyRequest, callback: AsyncCallback&lt;void&gt;): void;
- setProperty(request: SetPropertyRequest): Promise&lt;void&gt;;
- cancelAuth(contextID: Uint8Array): void;
- class PINAuth
- registerInputer(inputer: Inputer): void;
- UserIdentityManager
- cancel(challenge: Uint8Array): void;
**适配指导**
异步接口以setProperty为例,示例代码如下:
```
import account_osAccount from "@ohos.account.osAccount"
userAuth.setProperty({
authType: account_osAccount.AuthType.PIN,
key: account_osAccount.SetPropertyType.INIT_ALGORITHM,
setInfo: new Uint8Array([0])
}, (err) => {
if (err) {
console.log("setProperty failed, error: " + JSON.stringify(err));
} else {
console.log("setProperty successfully");
}
});
userAuth.setProperty({
authType: account_osAccount.AuthType.PIN,
key: account_osAccount.SetPropertyType.INIT_ALGORITHM,
setInfo: new Uint8Array([0])
}).catch((err) => {
if (err) {
console.log("setProperty failed, error: " + JSON.stringify(err));
} else {
console.log("setProperty successfully");
}
});
```
同步接口以registerInputer为例,示例代码如下:
```
import account_osAccount from "@ohos.account.osAccount"
let pinAuth = new account_osAccount.PINAuth()
let inputer = {
onGetData: (authType, passwordRecipient) => {
let password = new Uint8Array([0]);
passwordRecipient.onSetData(authType, password);
}
}
try {
pinAuth.registerInputer(inputer);
} catch (err) {
console.log("registerInputer failed, error: " + JSON.stringify(err));
}
```
## cl.account_os_account.2 应用帐号鉴权服务ACTION定义变更
**变更影响**
基于此前版本开发的应用,需适配修改应用配置文件(FA模型为config.json或Stage模型为module.json5)中的ACTION才能正常对外提供应用鉴权服务。
**关键接口/组件变更**
涉及的常量:
@ohos.ability.wantConstant.ACTION_APP_ACCOUNT_AUTH
变更前:
ACTION_APP_ACCOUNT_AUTH = "account.appAccount.action.auth"
变更后:
ACTION_APP_ACCOUNT_AUTH = "ohos.appAccount.action.auth"
**适配指导**
提供应用帐号鉴权服务的三方应用,需要在相关ServiceAbility的配置文件(FA模型为config.json或Stage模型为module.json5)中适配变更后的应用帐号认证ACTION,示例如下:
```
"abilities": [
{
"name": "ServiceAbility",
"srcEntrance": "./ets/ServiceAbility/ServiceAbility.ts",
...
"visible": true,
"skills": {
{
"actions": [
"ohos.appAccount.action.auth"
]
}
}
}]
}
# arkui子系统ChangeLog
## cl.arkui.1 xcomponent组件接口变更
arkui子系统xcomponent组件接口存在变更:
- 去除getXComponentSurfaceId和setXComponentSurfaceSize接口的@systemapi标签
- 指定getXComponentSurfaceId,getXComponentContext和setXComponentSurfaceSize接口的返回值类型
开发者需要根据以下说明对应用进行适配。
**变更影响**
影响已发布的JS接口,应用需要进行适配才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
- getXComponentSurfaceId:改为public接口,指定返回值类型为string
- setXComponentSurfaceSize:改为public接口,指定返回值类型为void
- getXComponentContext:指定返回值类型为Object
**适配指导**
不同场景下的启动规则说明如下:
开发者适配内容:
- **getXComponentSurfaceId**
- OpenHarmony 3.2-beta3 版本规则:
- 系统接口systemapi。
- 未指定返回值
- OpenHarmony 3.2-Beta4 版本新规则:
- 公共接口。
- 指定返回值类型为string
- 开发者需要按照string类型处理返回值
- **setXComponentSurfaceSize**
- OpenHarmony 3.2-beta3 版本规则:
- 系统接口systemapi。
- 未指定返回值
- OpenHarmony 3.2-Beta4 版本新规则:
- 公共接口。
- 指定返回值类型为void
- 开发者需要按照void类型处理返回值
- **getXComponentContext**
- OpenHarmony 3.2-beta3 版本规则:
- 未指定返回值
- OpenHarmony 3.2-Beta4 版本新规则:
- 指定返回值类型为Object
- 开发者需要按照Object类型处理返回值
## cl.arkui.2 弹窗类组件接口样式变更
ArkUI子系统alertDialog, actionSheet, customDialog组件及prompt, promptAction接口存在样式变更:
- promptAction.showDialog, promptAction.showActionMenu, alertDialog, actionSheet, customDialog更新弹窗底板模糊效果
**变更影响**
默认弹窗底板模糊效果
**关键的接口/组件变更**
涉及接口: promptAction.showDialog, promptAction.showActionMenu;
涉及组件: alertDialog, actionSheet, customDialog
**适配指导**
无需适配
\ No newline at end of file
# 事件通知子系统ChangeLog
## cl.notification.1 API异常处理方式变更
事件通知部分接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。
**变更影响**
基于此前版本开发的应用,需适配变更接口的错误信息返回方式,否则会影响原有业务逻辑。
**关键接口/组件变更**
为适配统一的API异常处理方式,对事件通知相关接口进行废弃(下表中 原接口 列内容),并新增对应接口(下表中 新接口 列内容)。新增接口支持统一的错误码异常处理规范,功能上与原接口保持一致。
| 原接口 | 新接口 |
| ----------------------- | -------------------------------- |
| @ohos.commonEvent.d.ts | @ohos.commonEventManager.d.ts |
| @ohos.notification.d.ts | @ohos.notificationManager.d.ts |
| @ohos.notification.d.ts | @ohos.notificationSubscribe.d.ts |
**适配指导**
如上所述,仅将老接口平移到了新的namespace中,所以可以通过修改import来解决适配问题:
如原先接口使用了@ohos.commonEvent
```js
import commonEvent from '@ohos.commonEvent';
```
可以通过直接修改import,来切换到新的namespace上:
```js
import commonEvent from '@ohos.commonEventManager';
```
@ohos.notification拆分成了两个namespace,需要根据接口情况选择需要的新namespace进行适配。
此外还需要适配异常处理,具体参考新接口的接口文档。
## cl.notification.2 接口变更
对事件通知部分接口名进行了变更。
**关键的接口/组件变更**
| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
| ------------------------- | ------------------- | ------------------------------------------------------------ | -------- |
| @ohos.notification | notification | **function** enableNotification(bundle: BundleOption, enable: boolean, callback: AsyncCallback<**void**>): **void**; | 废弃 |
| @ohos.notification | notification | **function** enableNotification(bundle: BundleOption, enable: boolean): Promise<**void**>; | 废弃 |
| @ohos.notificationManager | notificationManager | **function** setNotificationEnable(bundle: BundleOption, enable: boolean, callback: AsyncCallback<**void**>): **void**; | 新增 |
| @ohos.notificationManager | notificationManager | **function** setNotificationEnable(bundle: BundleOption, enable: boolean): Promise<**void**>; | 新增 |
| @ohos.notification | notification | **function** enableNotificationSlot(bundle: BundleOption, **type**: SlotType, enable: boolean, callback: AsyncCallback<**void**>): **void**; | 废弃 |
| @ohos.notification | notification | **function** enableNotificationSlot(bundle: BundleOption, **type**: SlotType, enable: boolean): Promise<**void**>; | 废弃 |
| @ohos.notificationManager | notificationManager | **function** setNotificationEnableSlot(bundle: BundleOption, **type**: SlotType, enable: boolean, callback: AsyncCallback<**void**>): **void**; | 新增 |
| @ohos.notificationManager | notificationManager | **function** setNotificationEnableSlot(bundle: BundleOption, **type**: SlotType, enable: boolean): Promise<**void**>; | 新增 |
| @ohos.notification | notification | **function** enableDistributed(enable: boolean, callback: AsyncCallback<**void**>): **void**; | 废弃 |
| @ohos.notification | notification | **function** enableDistributed(enable: boolean, callback: AsyncCallback<**void**>): **void**; | 废弃 |
| @ohos.notificationManager | notificationManager | **function** setDistributedEnable(enable: boolean, callback: AsyncCallback<**void**>): **void**; | 新增 |
| @ohos.notificationManager | notificationManager | **function** setDistributedEnable(enable: boolean): Promise<**void**>; | 新增 |
| @ohos.notification | notification | **function** enableDistributedByBundle(bundle: BundleOption, enable: boolean, callback: AsyncCallback<**void**>): **void**; | 废弃 |
| @ohos.notification | notification | **function** enableDistributedByBundle(bundle: BundleOption, enable: boolean): Promise<**void**>; | 废弃 |
| @ohos.notificationManager | notificationManager | **function** setDistributedEnableByBundle(bundle: BundleOption, enable: boolean, callback: AsyncCallback<**void**>): **void**; | 新增 |
| @ohos.notificationManager | notificationManager | **function** setDistributedEnableByBundle(bundle: BundleOption, enable: boolean): Promise<**void**>; | 新增 |
\ No newline at end of file
# 电话子系统ChangeLog
## cl.telephony.1 sms模块SystemAPI接口入参变更
已发布的部分电话子系统sms短信模块SystemAPI传入参数发生变化,不符合OpenHarmony接口规范。从API9开始做出以下变更:
isImsSmsSupported接口新增一个传入参数slotId,表示卡槽号。
**变更影响**
基于此前版本开发的应用,需适配变更js接口的入参,否则会影响原有功能。
**关键的接口/组件变更**
- 涉及接口
isImsSmsSupported(callback: AsyncCallback<boolean>): void;
isImsSmsSupported(): Promise<boolean>;
- 变更前:
```js
function isImsSmsSupported(callback: AsyncCallback<boolean>): void;
function isImsSmsSupported(): Promise<boolean>;
```
- 变更后:
```js
function isImsSmsSupported(slotId: number, callback: AsyncCallback<boolean>): void;
function isImsSmsSupported(slotId: number): Promise<boolean>;
```
**适配指导**
新增一个入参,示例代码如下:
callback方式
```js
let slotId = 0;
sms.isImsSmsSupported(slotId, (err, data) => {
console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
promise方式
```js
let slotId = 0;
let promise = sms.isImsSmsSupported(slotId);
promise.then(data => {
console.log(`isImsSmsSupported success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {
console.error(`isImsSmsSupported failed, promise: err->${JSON.stringify(err)}`);
});
```
\ No newline at end of file
# 多模输入changeLog
## cl.multimodalinput.1 API错误信息返回方式变更
下列模块内部接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。在API9进行变更。
- 输入设备管理模块:三方接口,@ohos.multimodalInput.inputDevice.d.ts
- 组合按键订阅模块:系统接口,@ohos.multimodalInput.inputConsumer.d.ts
- 键鼠穿越功能模块:系统接口,@ohos.multimodalInput.inputDeviceCooperate.d.ts
- 按键注入模块:系统接口,@ohos.multimodalInput.inputEventClient.d.ts
- 输入监听模块:系统接口,@ohos.multimodalInput.inputMonitor.d.ts
- 鼠标指针管理模块:系统接口和三方接口,@ohos.multimodalInput.pointer.d.ts
以上模块中的异步接口变更为参数检查错误同步抛出,业务逻辑错误通过AsyncCallback或Promise的error对象抛出,同步接口不作变更。
**变更影响**
基于此前版本开发的应用,需适配接口的错误信息返回方式,否则会影响原有业务逻辑。
**关键接口/组件变更**
- supportKeys(deviceId: number, keys: Array&lt;KeyCode&gt;, callback: AsyncCallback&lt;Array&lt;boolean&gt;&gt;): void;
- supportKeys(deviceId: number, keys: Array&lt;KeyCode&gt;): Promise&lt;Array&lt;boolean&gt;&gt;;
- getKeyboardType(deviceId: number, callback: AsyncCallback&lt;KeyboardType&gt;): void; &gt;
- getKeyboardType(deviceId: number): Promise&lt;KeyboardType&gt;;
- setPointerSpeed(speed: number, callback: AsyncCallback&lt;void&gt;): void;
- setPointerSpeed(speed: number): Promise&lt;void&gt;;
- getPointerSpeed(callback: AsyncCallback&lt;number&gt;): void;
- getPointerSpeed(): Promise&lt;number&gt;;
- setPointerStyle(windowId: number, pointerStyle: PointerStyle, callback: AsyncCallback&lt;void&gt;): void;
- setPointerStyle(windowId: number, pointerStyle: PointerStyle): Promise&lt;void&gt;;
- getPointerStyle(windowId: number, callback: AsyncCallback&lt;PointerStyle&gt;): void;
- getPointerStyle(windowId: number): Promise&lt;PointerStyle&gt;;
- setPointerVisible(visible: boolean, callback: AsyncCallback&lt;void&gt;): void;
- setPointerVisible(visible: boolean): Promise&lt;void&gt;;
- isPointerVisible(callback: AsyncCallback&lt;boolean&gt;): void;
- isPointerVisible(): Promise&lt;boolean&gt;;
- on(type:"touch", receiver:TouchEventReceiver):void;
- on(type:"mouse", receiver:Callback&lt;MouseEvent&gt;):void;
- off(type:"touch", receiver?:TouchEventReceiver):void;
- off(type:"mouse", receiver?:Callback&lt;MouseEvent&gt;):void;
- injectEvent({KeyEvent: KeyEvent}): void;
- enable(enable: boolean, callback: AsyncCallback&lt;void&gt;): void;
- enable(enable: boolean): Promise&lt;void&gt;;
- start(sinkDeviceDescriptor: string, srcInputDeviceId: number, callback: AsyncCallback&lt;void&gt;): void;
- start(sinkDeviceDescriptor: string, srcInputDeviceId: number): Promise&lt;void&gt;;
- stop(callback: AsyncCallback&lt;void&gt;): void;
- stop(): Promise&lt;void&gt;;
- getState(deviceDescriptor: string, callback: AsyncCallback&lt;{ state: boolean }&gt;): void;
- getState(deviceDescriptor: string): Promise&lt;{ state: boolean }&gt;;
- on(type: 'cooperation', callback: AsyncCallback&lt;{ deviceDescriptor: string, eventMsg: EventMsg }&gt;): void;
- off(type: 'cooperation', callback?: AsyncCallback&lt;void&gt;): void;
- on(type: "key", keyOptions: KeyOptions, callback: Callback&lt;KeyOptions&gt;): void;
- off(type: "key", keyOptions: KeyOptions, callback?: Callback&lt;KeyOptions&gt;): void;
以下接口标记废除:
- getDeviceIds(callback: AsyncCallback&lt;Array&lt;number&gt;&gt;): void;
- getDeviceIds(): Promise&lt;Array&lt;number&gt;&gt;;
- getDevice(deviceId: number, callback: AsyncCallback&lt;InputDeviceData&gt;): void;
- getDevice(deviceId: number): Promise&lt;InputDeviceData&gt;;
替代接口如下:
- getDeviceList(callback: AsyncCallback&lt;Array&lt;number&gt;&gt;): void;
- getDeviceList(): Promise&lt;Array&lt;number&gt;&gt;;
- getDeviceInfo(deviceId: number, callback: AsyncCallback&lt;InputDeviceData&gt;): void;
- getDeviceInfo(deviceId: number): Promise&lt;InputDeviceData&gt;;
以下接口发生变更
变更前:
- supportKeys(deviceId: number, keys: Array&lt;KeyCode&gt;, callback: Callback&lt;Array&lt;boolean&gt;&gt;): void;
- getKeyboardType(deviceId: number, callback: Callback&lt;KeyboardType&gt;): void;
变更后:
- supportKeys(deviceId: number, keys: Array&lt;KeyCode&gt;, callback: AsyncCallback&lt;Array&lt;boolean&gt;&gt;): void;
- getKeyboardType(deviceId: number, callback: AsyncCallback&lt;KeyboardType&gt;): void;
**适配指导**
以setPointerVisible为例,示例代码如下:
```ts
import pointer from '@ohos.multimodalInput.pointer';
pointer.setPointerVisible(true, (error) => {
console.log(`Set pointer visible success`);
});
try {
pointer.setPointerVisible(true, (error) => {
if (error) {
console.log(`Set pointer visible failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
return;
}
console.log(`Set pointer visible success`);
});
} catch (error) {
console.log(`Set pointer visible failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
```
# xxx子系统ChangeLog
相比最近一个发布版本(包括不限于LTS、Release、Beta、monthly版本)发生了影响契约兼容性(契约兼容:也称语义兼容,指版本演进后,开发者原有程序行为不发生变化)的变更(包括不限于接口名、参数、返回值、所需要的权限、调用顺序、枚举值、配置参数、路径等),则需要在ChangeLog中对变更进行阐述。
## cl.subsystemname.x xxx功能变更, 例:DeviceType属性变更、相机权限变更(尽量概括,不要超过15个字)
每个变更标题前需要附加编号:cl.subsystemname.x。cl为ChangeLog首字母缩写,subsystemname请填写子系统英文标准名称,x表示变更序号(从低到高逐位增加,起始为1)。
以功能维度对变更点进行概括描述。例如:xxx功能的xxx、xxx等发生了xxx变化,开发者需要根据以下说明对应用进行适配。
如果有此变更有对应的需求或设计文档,可以在描述中附上对应的设计文档编号。
**变更影响**
是否影响已发布的接口或者接口行为发生变更,影响的是JS接口还是Native接口。
是否影响在此前版本已开发的应用,即应用是否需要进行适配动才可以在新版本SDK环境正常编译通过。
**关键的接口/组件变更**
列举此功能变更涉及的接口/组件变更。
**适配指导(可选,不涉及则可以删除)**
提供指导,帮助开发者针对相关变更进行适配,使应用可以与新版本兼容。
例:
在xxx文件中将xxx参数修改为xxx。
```
sample code
```
# 元能力子系统ChangeLog
## cl.ability.1 appRecovery接口中RestartFlag属性名称变更,删除了未支持的属性
appRecovery接口中RestartFlag枚举命名从特定故障发生后**不重启**改成了特定故障发生后**重启**
删除了CPP_CRASH_NO_RESTART。
**变更影响**
3.2.10.6版本之前使用CPP_CRASH_NO_RESTART/JS_CRASH_NO_RESTART/APP_FREEZE_NO_RESTART类型开发的应用,在3.2.10.6版本之后行为会发生变化。
**关键接口/组件变更**
**RestartFlag** <sup>9+</sup>
变更前:
| 名称 | 值 | 说明 |
| ----------------------------- | ---- | ------------------------------------------------------------ |
| ALWAYS_RESTART | 0 | 总是重启应用。 |
| CPP_CRASH_NO_RESTART | 0x0001 | 发生CPP_CRASH时**不重启**应用。 |
| JS_CRASH_NO_RESTART | 0x0002 | 发生JS_CRASH时**不重启**应用。 |
| APP_FREEZE_NO_RESTART | 0x0004 | 发生APP_FREEZE时**不重启**应用。 |
| NO_RESTART | 0xFFFF | 总是不重启应用。 |
变更后:
| 名称 | 值 | 说明 |
| ---------- | ---- | ---------- |
| ALWAYS_RESTART | 0 | 总是重启应用。 |
| CPP_CRASH_NO_RESTART | NA | **删除**,不支持该场景的重启。 |
| RESTART_WHEN_JS_CRASH | 0x0001 | 发生JS_CRASH时**重启**应用。 |
| RESTART_WHEN_APP_FREEZE | 0x0002 | 发生APP_FREEZE时**重启**应用。 |
| NO_RESTART | 0xFFFF | 总是不重启应用。 |
**适配指导**
按新的语义进行适配。
\ No newline at end of file
# arkui子系统ChangeLog
## cl.arkui.1 状态变量数据类型声明使用限制。
1. 所有的状态装饰器变量需要显式声明变量类型,不允许声明any,不支持Date数据类型。
示例:
```ts
// xxx.ets
@Entry
@Component
struct DatePickerExample {
// 错误写法: @State isLunar: any = false
@State isLunar: boolean = false
// 错误写法: @State selectedDate: Date = new Date('2021-08-08')
private selectedDate: Date = new Date('2021-08-08')
build() {
Column() {
Button('切换公历农历')
.margin({ top: 30 })
.onClick(() => {
this.isLunar = !this.isLunar
})
DatePicker({
start: new Date('1970-1-1'),
end: new Date('2100-1-1'),
selected: this.selectedDate
})
.lunar(this.isLunar)
.onChange((value: DatePickerResult) => {
this.selectedDate.setFullYear(value.year, value.month, value.day)
console.info('select current date is: ' + JSON.stringify(value))
})
}.width('100%')
}
}
```
![datePicker](../../../application-dev/reference/arkui-ts/figures/datePicker.gif)
2. @State、@Provide、 @Link和@Consume四种状态变量的数据类型声明只能由简单数据类型或引用数据类型的其中一种构成。
类型定义中的Length、ResourceStr、ResourceColor三个类型是简单数据类型或引用数据类型的组合,所以不能被以上四种状态装饰器变量使用。
Length、ResourceStr、ResourceColor的定义请看文档[arkui-ts类型定义](../../../application-dev/reference/arkui-ts/ts-types.md)。
示例:
```ts
// xxx.ets
@Entry
@Component
struct IndexPage {
// 错误写法: @State message: string | Resource = 'Hello World'
@State message: string = 'Hello World'
// 错误写法: @State message: ResourceStr = $r('app.string.hello')
@State resourceStr: Resource = $r('app.string.hello')
build() {
Row() {
Column() {
Text(`${this.message}`)
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
.width('100%')
}
.height('100%')
}
}
```
![hello](../../../application-dev/quick-start/figures/hello.PNG)
**变更影响**
1. 如果状态装饰器变量没有显式声明变量类型,声明any,编译拦截报错;
```ts
// ArkTS:ERROR Please define an explicit type, not any.
@State isLunar: any = false
```
2. 状态装饰器变量声明变量类型为Date,编译拦截报错;
```ts
// ArkTS:ERROR The @State property 'selectedDate' cannot be a 'Date' object.
@State selectedDate: Date = new Date('2021-08-08')
```
3. @State、@Provide、 @Link和@Consume四种状态变量使用框架提供的Length、ResourceStr、ResourceColor,
编译拦截报错。
```ts
/* ArkTS:ERROR The state variable type here is 'ResourceStr', it contains both a simple type and an object type,
which are not allowed to be defined for state variable of a struct.*/
@State message: ResourceStr = $r('app.string.hello')
```
**关键的接口/组件变更**
不涉及。
**适配指导**
1. 状态装饰器变量声明具体的变量类型替代any;
2. 使用Date对象的状态装饰器变量,修改为不加状态装饰器修饰的常规变量;
3. 因为Length(string|number|Resource), ResourceStr(string|Resource), ResourceColor(string|number|Color|Resource)
的三个类型是简单数据类型或引用数据类型的组合,使用@State、@Provide、 @Link和@Consume四种状态变量场景参考以下修改:
```ts
// 错误写法:
@State message: ResourceStr = $r('app.string.hello')
// 修正后的写法:
@State resourceStr: Resource = $r('app.string.hello')
```
## cl.arkui.2 自定义组件成员变量初始化的规则与约束。
通过构造函数方法初始化成员变量,需要遵循如下规则:
| **从父组件中的变量(右)到子组件中的变量(下)** | **regular** | **@State** | **@Link** | **@Prop** | **@Provide** | **@Consume** | **@ObjectLink** |
|---------------------------------|----------------------------|------------|-----------|-----------|--------------|--------------|------------------|
| **regular** | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 支持 |
| **@State** | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
| **@Link** | 不支持 | 支持(1) | 支持(1) | 支持(1) | 支持(1) | 支持(1) | 支持(1) |
| **@Prop** | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
| **@Provide** | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
| **@Consume** | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 |
| **@ObjectLink** | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 |
| **从父组件中的变量(右)到子组件中的变量(下)** | **@StorageLink** | **@StorageProp** | **@LocalStorageLink** | **@LocalStorageProp** |
|------------------|------------------|------------------|-----------------------|------------------------|
| **regular** | 支持 | 不支持 | 不支持 | 不支持 |
| **@State** | 支持 | 支持 | 支持 | 支持 |
| **@Link** | 支持(1) | 支持(1) | 支持(1) | 支持(1) |
| **@Prop** | 支持 | 支持 | 支持 | 支持 |
| **@Provide** | 支持 | 支持 | 支持 | 支持 |
| **@Consume** | 不支持 | 不支持 | 不支持 | 不支持 |
| **@ObjectLink** | 不支持 | 不支持 | 不支持 | 不支持 |
> **说明**
>
> **支持(1)**:必须使用`$`, 例如 `this.$varA`。
> **regular**:未加修饰的常规变量。
不允许从父组件初始化`@StorageLink`, `@StorageProp`, `@LocalStorageLink`, `@LocalStorageProp`修饰的变量。
**变更影响**
1. 不允许从父组件初始化`@LocalStorageLink`, `@LocalStorageProp`修饰的变量。
```ts
@Entry
@Component
struct LocalStorageComponent {
build() {
Column() {
Child({
/* ArkTS:ERROR Property 'simpleVarName' in the custom component 'Child' cannot
initialize here (forbidden to specify). */
simpleVarName: 1,
/* ArkTS:ERROR Property 'objectName' in the custom component 'Child' cannot
initialize here (forbidden to specify). */
objectName: new ClassA("x")
})
}
}
}
@Component
struct Child {
@LocalStorageLink("storageSimpleProp") simpleVarName: number = 0;
@LocalStorageProp("storageObjectProp") objectName: ClassA = new ClassA("x");
build() {}
}
```
2. 子组件的@ObjectLink变量不支持父组件装饰器变量的直接赋值,其父组件的源必须是数组的项或对象的属性,该数组或对象必现用`@State``@Link``@Provide``@Consume``@ObjectLink`装饰器修饰。
```ts
let NextID : number = 0;
@Observed class ClassA {
public id : number;
public c: number;
constructor(c: number) {
this.id = NextID++;
this.c = c;
}
}
@Component
struct Child {
@ObjectLink varA : ClassA;
build() {
Row() {
Text('ViewA-' + this.varA.id)
}
}
}
@Component
struct Parent {
@Link linkValue: ClassA
build() {
Column() {
/* ArkTS:ERROR The @Link property 'linkValue' cannot be assigned to
the @ObjectLink property 'varA'.*/
Child({ varA: this.linkValue })
}
}
}
```
**关键的接口/组件变更**
不涉及。
**适配指导**
1. 构造子组件时,不对子组件的`@LocalStorageLink`, `@LocalStorageProp`修饰的变量进行。
如果需要在父组件中修改子组件的`@LocalStorageLink`, `@LocalStorageProp`修饰的变量,则使用LocalStorage提供的API接口方法(比如set方法)赋值。
2. @ObjectLink的使用指导请参考文档[@ObjectLink使用指导](../../../application-dev/quick-start/arkts-state-mgmt-page-level.md)
# 包管理子系统ChangeLog
## cl.bundlemanager.1 API9的ApplicationInfo结构体字段变更,删除entryDir字段。
API9的ApplicationInfo结构体[[bundleManager/applicationInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/monthly_20221018/api/bundleManager/applicationInfo.d.ts)]字段变更,删除entryDir字段。
**变更影响**<br>
对使用API version 8及之前版本SDK的应用无影响,使用API version 9的应用需要适配新模块和新接口。
**关键的接口/组件变更**<br>
ApplicationInfo结构体发生变化的字段内容如下表所示。
| 删除 | API9新增或变更 | 类型 |
| --- | --- | --- |
| entryDir | 无 | string |
**适配指导**<br>
导入包管理查询的模块,在API9 version的ApplicationInfo结构体时,使用了entryDir需要进行修改,该字段属于多余字段。
## cl.bundlemanager.2 API9的HapModuleInfo结构体字段变更,删除moduleSourceDir字段。
API9的HapModuleInfo结构体[[bundleManager/hapModuleInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/monthly_20221018/api/bundleManager/hapModuleInfo.d.ts)]字段变更,删除moduleSourceDir字段。
**变更影响**<br>
对使用API version 8及之前版本SDK的应用无影响,使用API version 9的应用需要适配新模块和新接口。
**关键的接口/组件变更**<br>
HapModuleInfo结构体发生变化的字段内容如下表所示。
| 删除 | API9新增或变更 | 类型 |
| --- | --- | --- |
| moduleSourceDir | 无 | string |
**适配指导**<br>
导入包管理查询的模块,在API9 version的HapModuleInfo结构体时不能使用moduleSourceDir字段。使用了moduleSourceDir需要进行修改,该字段属于多余字段。
# 分布式数据管理子系统JS API变更Changelog
OpenHarmony 3.2.10.1(Mr)版本相较于OpenHarmony 3.2.beta4版本,分布式数据管理子系统的API变更如下
## cl.distributeddatamgr.1 接口变更
distributeddatamgr子系统kv_store组件接口存在变更:
由于执行时间固定且耗时短,不需要异步等待执行结果,createKVManager方法需要改为同步接口。因此旧的接口function createKVManager(config: KVManagerConfig): Promise\<KVManager\>; 与 function createKVManager(config: KVManagerConfig, callback: AsyncCallback<KVManager>): void; 改为 function createKVManager(config: KVManagerConfig): KVManager;
开发者需要根据以下说明对应用进行适配。
**变更影响**
影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。
**关键的接口/组件变更**
| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
| ------------------------- | ------------------- | ------------------------------------------------------------ | -------- |
| @ohos.distributedKVStore | distributedKVStore | function createKVManager(config: KVManagerConfig): Promise\<KVManager\>; | 删除 |
| @ohos.distributedKVStore | distributedKVStore | function createKVManager(config: KVManagerConfig): KVManager; | 变更 |
**适配指导**
应用中调用createKVManager创建KVManager对象实例可参考下列代码
Stage模型下的示例:
```ts
import AbilityStage from '@ohos.application.Ability'
let kvManager;
export default class MyAbilityStage extends AbilityStage {
onCreate() {
console.log("MyAbilityStage onCreate")
let context = this.context
const kvManagerConfig = {
context: context,
bundleName: 'com.example.datamanagertest',
}
try {
kvManager = distributedKVStore.createKVManager(kvManagerConfig);
} catch (e) {
console.error(`Failed to create KVManager.code is ${e.code},message is ${e.message}`);
}
}
}
```
FA模型下的示例:
```ts
import featureAbility from '@ohos.ability.featureAbility'
let kvManager;
let context = featureAbility.getContext()
const kvManagerConfig = {
context: context,
bundleName: 'com.example.datamanagertest',
}
try {
kvManager = distributedKVStore.createKVManager(kvManagerConfig);
} catch (e) {
console.error(`Failed to create KVManager.code is ${e.code},message is ${e.message}`);
}
```
## cl.distributeddatamgr.2 function getRdbStoreV9 从@ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts
**变更影响**
getRdbStoreV9接口标记废弃,应用需要进行适配。
**关键的接口/组件变更**
如下接口:
```ts
function getRdbStoreV9(context: Context, config: StoreConfigV9, version: number, callback: AsyncCallback<RdbStoreV9>): void;
function getRdbStoreV9(context: Context, config: StoreConfigV9, version: number): Promise<RdbStoreV9>;
```
从@ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts:
```
function getRdbStore(context: Context, config: StoreConfig, callback: AsyncCallback<RdbStore>): void;
function getRdbStore(context: Context, config: StoreConfig): Promise<RdbStore>;
```
**适配指导**
* `import rdb from "@ohos.data.rdb"` 改为 `import rdb from "@ohos.data.relationalStore"`
* 按上述接口变更对齐修改所调用的方法名称即可。
## cl.distributeddatamgr.3 function deleteRdbStoreV9 从@ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts
**变更影响**
deleteRdbStoreV9接口标记废弃,应用需要进行适配。
**关键的接口/组件变更**
如下接口:
```ts
function deleteRdbStoreV9(context: Context, name: string, callback: AsyncCallback<void>): void;
function deleteRdbStoreV9(context: Context, name: string): Promise<void>;
```
从@ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts:
```
function deleteRdbStoreV9(context: Context, name: string, callback: AsyncCallback<void>): void;
function deleteRdbStoreV9(context: Context, name: string): Promise<void>;
```
**适配指导**
* `import rdb from "@ohos.data.rdb"` 改为 `import rdb from "@ohos.data.relationalStore"`
* 按上述接口变更对齐修改所调用的方法名称即可。
## cl.distributeddatamgr.4 interface StoreConfigV9 从@ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts
**变更影响**
StoreConfigV9接口标记废弃,应用需要进行适配。
**关键的接口/组件变更**
interface StoreConfigV9 从@ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts 改名为interface StoreConfig。
**适配指导**
* `import rdb from "@ohos.data.rdb"` 改为 `import rdb from "@ohos.data.relationalStore"`
* 按上述接口变更对齐修改所调用的接口名称即可。
## cl.distributeddatamgr.5 enum SecurityLevel 从@ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts
**变更影响**
SecurityLevel接口标记废弃,应用需要进行适配。
**关键的接口/组件变更**
enum SecurityLevel 从ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts。
**适配指导**
* `import rdb from "@ohos.data.rdb"` 改为 `import rdb from "@ohos.data.relationalStore"`
* 按上述接口变更对齐修改所调用的接口名称即可。
## cl.distributeddatamgr.6 interface RdbStoreV9 从@ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts
**变更影响**
RdbStoreV9接口标记废弃,应用需要进行适配。
**关键的接口/组件变更**
interface RdbStoreV9 从@ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts 改名为interface RdbStore。
**适配指导**
* `import rdb from "@ohos.data.rdb"` 改为 `import rdb from "@ohos.data.relationalStore"`
* 按上述接口变更对齐修改所调用的接口名称即可。
## cl.distributeddatamgr.7 class RdbPredicatesV9 从ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts
**变更影响**
RdbPredicatesV9接口标记废弃,应用需要进行适配。
**关键的接口/组件变更**
class RdbPredicatesV9 从ohos.data.rdb.d.ts 迁移至@ohos.data.relationalStore.d.ts 改名为interface RdbPredicates。
**适配指导**
* `import rdb from "@ohos.data.rdb"` 改为 `import rdb from "@ohos.data.relationalStore"`
* 按上述接口变更对齐修改所调用的接口名称即可。
## cl.distributeddatamgr.8 interface ResultSetV9 从api/@ohos.data.relationalStore.d.ts 迁移至@ohos.data.relationalStore.d.ts
**变更影响**
ResultSetV9接口标记废弃,应用需要进行适配。
**关键的接口/组件变更**
interface ResultSetV9 从api/data/rdb/resultSet.d.ts 迁移至@ohos.data.relationalStore.d.ts 改名为interface ResultSet。
**适配指导**
* `import rdb from "@ohos.data.rdb"` 改为 `import rdb from "@ohos.data.relationalStore"`
* ResultSetV9实例仅通过getRdbStoreV9方法获取,参考cl.distributeddatamgr.2变更后,代码可自动适配ResultSet。
## cl.multimedia.av_session.001 av_session所有接口更换为系统接口
所有av_session的接口变更为SystemApi。
**变更影响**
非系统应用无法调用系统接口,如调用方为非系统应用或未申请SystemApi相关权限,将无法调用接口。
**关键的接口/组件变更**
所有接口均变更为SystemApi,接口明细如下:
| 接口、枚举或变量名 | 类型 | 是否为SystemApi |
| -------- | -------- | ------- |
| SessionToken | interface | 是 |
| AVMetadata | interface | 是 |
| AVPlaybackState | interface | 是 |
| PlaybackPosition | interface | 是 |
| OutputDeviceInfo | interface | 是 |
| AVSessionDescriptor | interface | 是 |
| AVSessionController | interface | 是 |
| AVControlCommand | interface | 是 |
| createAVSession | function | 是 |
| getAllSessionDescriptors | function | 是 |
| createController | function | 是 |
| castAudio | function | 是 |
| on | function | 是 |
| off | function | 是 |
| sendSystemAVKeyEvent | function | 是 |
| sendSystemControlCommand | function | 是 |
| sessionId | variable | 是 |
| setAVMetadata | function | 是 |
| setAVPlaybackState | function | 是 |
| setLaunchAbility | function | 是 |
| getController | function | 是 |
| getOutputDevice | function | 是 |
| activate | function | 是 |
| deactivate | function | 是 |
| destroy | function | 是 |
| getAVPlaybackState | function | 是 |
| getAVMetadata | function | 是 |
| getOutputDevice | function | 是 |
| sendAVKeyEvent | function | 是 |
| getLaunchAbility | function | 是 |
| getRealPlaybackPositionSync | function | 是 |
| isActive | function | 是 |
| getValidCommands | function | 是 |
| sendControlCommand | function | 是 |
| AVSessionType | type | 是 |
| AVControlCommandType | type | 是 |
| LoopMode | enum | 是 |
| PlaybackState | enum | 是 |
| AVSessionErrorCode | enum | 是 |
# 上传下载子系统ChangeLog
## cl.request.2 request上传下载接口变更
- 删除API9-beta接口:
1. function download(context: BaseContext, config: DownloadConfig, callback: AsyncCallback<DownloadTask>): void;
2. function download(context: BaseContext, config: DownloadConfig): Promise<DownloadTask>;
3. function upload(context: BaseContext, config: UploadConfig, callback: AsyncCallback<UploadTask>): void;
4. function upload(context: BaseContext, config: UploadConfig): Promise<UploadTask>;
**变更影响**
基于此前版本使用Stage模式开发的应用,需适配变更后的接口,否则会影响原有业务逻辑。
**关键的接口/组件变更**
| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
|--------------|--------------|-------------------------------------------------------------------------------------------------------------------|------|
| ohos.request | request | function download(context: BaseContext, config: DownloadConfig, callback: AsyncCallback<DownloadTask>): void; | 删除 |
| ohos.request | request | function download(context: BaseContext, config: DownloadConfig): Promise<DownloadTask>; | 删除 |
| ohos.request | request | function upload(context: BaseContext, config: UploadConfig, callback: AsyncCallback<UploadTask>): void; | 删除 |
| ohos.request | request | function upload(context: BaseContext, config: UploadConfig): Promise<UploadTask>; | 删除 |
**适配指导**
以download为例,在新版本上需要使用downloadFile, 如下方式进行调用:
```ts
try {
request.downloadFile(globalThis.abilityContext, { url: 'https://xxxx/xxxxx.hap',
filePath: 'xxx/xxxxx.hap'}, (err, data) => {
if (err) {
console.error('Failed to request the download. Cause: ' + JSON.stringify(err));
return;
}
});
} catch (err) {
console.log("downloadFile callback fail." + "errCode:" + err.code + ",errMessage:" + err.message);
}
```
\ No newline at end of file
# 电话子系统ChangeLog
## cl.telephony.1 radio模块接口变更
### 电话子系统radio模块 `isNrSupported` 接口存在变更:
NR是专有名词,需要全部大写。
开发者需要根据以下说明对应用进行适配。
**变更影响**
基于此前版本开发的应用,需适配变更的js接口,变更前的接口已经不能正常使用了,否则会影响原有功能。
**关键的接口/组件变更**
- 涉及接口
isNrSupported(): boolean;
isNrSupported(slotId: number): boolean;
- 变更前:
```js
function isNrSupported(): boolean;
function isNrSupported(slotId: number): boolean;
```
- 变更后:
```js
function isNRSupported(): boolean;
function isNRSupported(slotId: number): boolean;
```
**适配指导**
使用变更后的接口,示例代码如下:
```js
let result = radio.isNrSupported();
console.log("Result: "+ result);
```
```js
let slotId = 0;
let result = radio.isNRSupported(slotId);
console.log("Result: "+ result);
```
# 用户IAM子系统Changelog
## cl.useriam.1 API9返回值命名变更
用户IAM API9的返回值枚举类类名发生变更,从 ResultCodeV9 更名为 UserAuthResultCode
**变更影响**
基于此版本以前开发的应用不受影响,以后的需适配错误码的类名,否则会影响业务逻辑。
**关键接口/组件变更**
无接口/组件变更
**适配指导**
需要修改返回值调用类名从 ResultCodeV9 改为 UserAuthResultCode
\ No newline at end of file
# 窗口子系统ChangeLog
## cl.window.1 WindowStage生命周期监听类型名称变更
WindowStage生命周期的监听类型枚举定义自3.2.10.5版本起进行了变更。
**变更影响**
3.2.10.5版本之前使用FOREGROUND/BACKGROUND类型开发的应用生命周期监听,在3.2.10.5版本之后失效。
**关键接口/组件变更**
## WindowStageEventType<sup>9+</sup>
变更前:
| 名称 | 值 | 说明 |
| ---------- | ---- | ---------- |
| FOREGROUND | 1 | 切到前台。 |
| BACKGROUND | 4 | 切到后台。 |
变更后:
| 名称 | 值 | 说明 |
| ------ | ---- | ---------- |
| SHOWN | 1 | 切到前台。 |
| HIDDEN | 4 | 切到后台。 |
**适配指导**
在注册生命周期监听回调时,将前后台事件类型改为SHOWN/HIDDEN:
```
import Ability from '@ohos.application.Ability';
class myAbility extends Ability {
onWindowStageCreate(windowStage) {
console.log('onWindowStageCreate');
try {
windowStage.on('windowStageEvent', (stageEventType) => {
switch (stageEventType) {
case window.WindowStageEventType.SHOWN:
console.log("windowStage shown");
break;
case window.WindowStageEventType.ACTIVE:
console.log("windowStage active");
break;
case window.WindowStageEventType.INACTIVE:
console.log("windowStage inActive");
break;
case window.WindowStageEventType.HIDDEN:
console.log("windowStage hidden");
break;
default:
break;
}
} )
} catch (exception) {
console.error('Failed to enable the listener for window stage event changes. Cause:' +
JSON.stringify(exception));
};
}
};
```
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册