未验证 提交 69cdec92 编写于 作者: O openharmony_ci 提交者: Gitee

!19153 处理发布分支的changelogs

Merge pull request !19153 from 时睿/OpenHarmony-4.0-Beta1
# JS API差异报告
- [元能力](js-apidiff-ability.md)
- [帐号](js-apidiff-account.md)
- [应用](js-apidiff-application.md)
- [ArkUI](js-apidiff-arkui.md)
- [电源管理](js-apidiff-battery.md)
- [包管理](js-apidiff-bundle.md)
- [基础通信](js-apidiff-communication.md)
- [语言编译与运行时](js-apidiff-compiler-and-runtime.md)
- [分布式数据管理](js-apidiff-distributed-data.md)
- [文件管理](js-apidiff-file-management.md)
- [位置服务](js-apidiff-geolocation.md)
- [全球化](js-apidiff-global.md)
- [Misc软件](js-apidiff-misc.md)
- [多媒体](js-apidiff-multimedia.md)
- [事件通知](js-apidiff-notification.md)
- [资源调度](js-apidiff-resource-scheduler.md)
- [安全](js-apidiff-security.md)
- [启动](js-apidiff-start-up.md)
- [电话服务](js-apidiff-telephony.md)
- [测试](js-apidiff-unitest.md)
- [用户IAM](js-apidiff-user-iam.md)
- [Web](js-apidiff-web.md)
- [窗口](js-apidiff-window.md)
# ArkUI子系统LocalStorage类接口ChangeLog
## cl.LocalStorage.1 get接口返回类型变更
**变更影响**
返回类型从get<T>(propName: string): T变更为get<T>(propName: string): T | undefined
应用不需要进行适配。
## cl.LocalStorage.2 setOrCreate参数newValue变成必选
**变更影响**
原接口声明:
```js
setOrCreate<T>(propName: string, newValue?: T): boolean
```
现接口声明:
```js
setOrCreate<T>(propName: string, newValue: T): boolean
```
第二个参数newValue变为必选。
如果应用调用这个接口没有指定newValue参数,在替换新的sdk后会编译不过,需要手动指定newValue。
**适配指导**
```js
let storage = new LocalStorage();
storage.setOrCreate('propA', 'hello');
```
## cl.LocalStorage.3 link参数和返回类型变更
**变更影响**
原接口声明:
```js
link<T>(propName: string, linkUser?: T, subscribersName?: string): T
```
现接口声明:
```js
link<T>(propName: string): SubscribedAbstractProperty<T>
```
1. link第二三个参数为框架内部调用,不应对外开发,所以将接口变更为一个参数;
2. 返回类型T变更为SubscribedAbstractProperty;
**适配指导**
```js
let storage = new LocalStorage({"PropA": "47"});
let linA = storage.link("PropA");
linA.set(50);
```
## cl.LocalStorage.4 setAndLink参数和返回类型变更
**变更影响**
原接口声明:
```js
setAndLink<T>(propName: string, defaultValue: T, linkUser?: T, subscribersName?: string): T
```
现接口声明:
```js
setAndLink<T>(propName: string, defaultValue: T): SubscribedAbstractProperty<T>
```
1. setAndLink第三四个参数为框架内部调用,不应对外开发,所以将接口变更为2个参数;
2. 返回类型T变更为SubscribedAbstractProperty;
**适配指导**
```js
let storage = new LocalStorage({"PropA": "47"});
let linA = storage.setAndLink("PropA", "48")
linA.set(50);
```
## cl.LocalStorage.5 prop参数和返回类型变更
**变更影响**
原接口声明:
```js
prop<T>(propName: string, propUser?: T, subscribersName?: string): T
```
现接口声明:
```js
prop<S>(propName: string): SubscribedAbstractProperty<S>
```
1. prop第二三个参数为框架内部调用,不应对外开发,所以将接口变更为1个参数;
2. 返回类型T变更为SubscribedAbstractProperty;
**适配指导**
```js
let storage = new LocalStorage({"PropA": "47"});
let propA = storage.prop("PropA");
propA.set(51); // one-way sync
```
## cl.LocalStorage.6 setAndProp参数和返回类型变更
**变更影响**
原接口声明:
```js
setAndProp<T>(propName: string, defaultValue: T, propUser?: T, subscribersName?: string): T
```
现接口声明:
```js
setAndProp<S>(propName: string, defaultValue: S): SubscribedAbstractProperty<S>
```
1. setAndProp第三四个参数为框架内部调用,不应对外开发,所以将接口变更为2个参数;
2. 返回类型T变更为SubscribedAbstractProperty;
**适配指导**
```js
let storage = new LocalStorage({"PropA": "47"});
let propA = storage.setAndProp("PropA", "48");
propA.set(51); // one-way sync
```
\ No newline at end of file
# 包管理子系统ChangeLog
## cl.bundlemanager.1 app.json配置文件删除atomicService标签
删除配置文件app.json中atomicService标签
**变更影响**<br>
删除配置文件app.json中atomicService标签,IDE中不再支持配置该标签,使用该标签会导致IDE编译报错
**适配指导**<br>
删除atomicService标签
## cl.bundlemanager.2 app.json配置文件新增bundleType标签
配置文件app.json中新增bundleType标签
**变更影响**<br>
现存的元服务([installationFree](../../../application-dev/quick-start/module-configuration-file.md)为true),必须在app.json中指定bundleType为atomicService,否则打包失败。
**适配指导**<br>
新增[bundleType](../../../application-dev/quick-start/app-configuration-file.md)标签。该标签为可缺省(缺省值为app)。该标签需要和module.json中[installationFree](../../../application-dev/quick-start/module-configuration-file.md)字段保持一一对应,其相应规则为:
- 当bundleType为app时,installationFree必须为false。
- 当bundleType为atomicService时,installationFree必须为true。
## cl.bundlemanager.3 包管理ApplicationInfo结构体中删除split字段。
包管理[ApplicationInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/ApplicationInfo.d.ts)结构体中删除split字段。
**变更影响**<br>
使用之前已发布的API 9各beta版本且使用到了split的,会编译失败。
**关键的接口/组件变更**<br>
包管理[ApplicationInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/ApplicationInfo.d.ts)结构体中删除split字段。
**适配指导**<br>
删除ApplicationInfo结构体中的split字段。目前元服务中stage模型强制分包,不支持不分包。
## cl.bundlemanager.4 包管理HapModuleInfo结构体中删除atomicServiceModuleType字段。
包管理[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中删除atomicServiceModuleType字段。
**变更影响**<br>
使用之前已发布的API 9各beta版本且使用到了atomicServiceModuleType的,会编译失败。
**关键的接口/组件变更**<br>
包管理[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中删除atomicServiceModuleType字段。
**适配指导**<br>
删除[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中的atomicServiceModuleType字段。判断atomicServiceModuleType字段的部分,用[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中的moduleType代替。
## cl.bundlemanager.5 包管理删除AtomicServiceModuleType枚举值。
包管理[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中删除atomicServiceModuleType字段。
**变更影响**<br>
使用之前已发布的API 9各beta版本且使用到了atomicServiceModuleType的,会编译失败。
**关键的接口/组件变更**<br>
包管理[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中删除atomicServiceModuleType字段。
**适配指导**<br>
删除[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中的atomicServiceModuleType字段。判断atomicServiceModuleType字段的部分,用[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中的moduleType代替。
\ No newline at end of file
# 包管理子系统ChangeLog
## cl.bundlemanager.1 API9的ApplicationInfo结构体字段变更,新增systemApp字段,删除entryDir字段。
API9的ApplicationInfo结构体[bundleManager/applicationInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/ApplicationInfo.d.ts)字段变更,新增systemApp字段,删除entryDir字段。
**变更影响**<br>
对原有使用API version 9之前的应用无影响,使用API version 9的应用需要适配新模块和新接口。
**关键的接口/组件变更**<br>
ApplicationInfo结构体发生变化的字段内容如下表所示。
| 删除 | API9新增或变更 | 类型 |
| --- | --- | --- |
| 无 | systemApp | boolean |
| entryDir | 无 | string |
**适配指导**<br>
导入包管理查询的模块,在API9 version的ApplicationInfo结构体时,可以使用systemApp字段。使用了entryDir需要进行修改,该字段在HAP不解压特性中属于多余字段。
## cl.bundlemanager.2 API9的HapModuleInfo结构体字段变更,删除moduleSourceDir字段。
API9的HapModuleInfo结构体[bundleManager/hapModuleInfo.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)字段变更,删除moduleSourceDir字段。
**变更影响**<br>
对原有使用API version 9之前的应用无影响,使用API version 9的应用需要适配新模块和新接口。
**关键的接口/组件变更**<br>
HapModuleInfo结构体发生变化的字段内容如下表所示。
| 删除 | API9新增或变更 | 类型 |
| --- | --- | --- |
| moduleSourceDir | 无 | string |
**适配指导**<br>
导入包管理查询的模块,在API9 version的HapModuleInfo结构体时不能使用moduleSourceDir字段。使用了moduleSourceDir需要进行修改,该字段在HAP不解压特性中属于多余字段。
# 包管理子系统ChangeLog
## cl.bundlemanager.1 包管理分布式查询模块名称变更,由ohos.bundle.distributedBundle变更为ohos.bundle.distributedBundleManager,接口未发生变更。
API9的包管理分布式查询模块名称变更,由ohos.bundle.distributedBundle变更为[ohos.bundle.distributedBundleManager](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.distributedBundleManager.d.ts),接口未发生变更。
**变更影响**<br>
对原有使用API version 9之前的应用无影响,使用API version 9的应用需要适配新模块。
**关键的接口/组件变更**<br>
包管理分布式查询模块名称由ohos.bundle.distributedBundle修改为ohos.bundle.distributedBundleManager,接口未发生变更。
**适配指导**<br>
原有导入模块@ohos.bundle.distributedBundle代码需要修改为@ohos.bundle.distributedBundleManager。
```ts
import distributedBundle form '@ohos.bundle.distributedBundleManager';
```
# 包管理子系统ChangeLog
## cl.bundlemanager.1 底层能力变更,安装应用时增加签名证书中bundle-name的校验,需要与应用的bundleName相同,否则会安装失败。
安装应用时增加了对[签名证书profile文件](../../../application-dev/security/app-provision-structure.md)中bundle-name字段的校验,该字段内容需要配置为对应应用的bundleName。
如果bundle-name的内容与应用配置文件中的bundleName不一致,会出现安装失败。具体报错为:
```
error: verify signature failed.
```
**变更影响**<br>
对之前的版本镜像无影响,对使用3.2.10.5版本及之后的系统镜像,如果未修改签名证书中的bundle-name字段,会出现应用安装失败问题。
**关键的接口/组件变更**<br>
不涉及接口及组件变更
**适配指导**<br>
原有应用在新的系统镜像上出现'error: verify signature failed',可以修改签名证书profile文件中的bundle-name为对应应用的bundleName,生成新的签名证书(后缀为.p7b),重新给应用签名即可。
签名工具及签名证书的生成方式可以参考:[签名工具指导](../../../application-dev/security/hapsigntool-guidelines.md)
## cl.bundlemanager.2 底层能力变更,增加对无图标应用的管控,如果应用未配置入口图标,则会在桌面上显示一个默认图标,点击后跳转至应用详情页。
增加对无图标应用的管控,如果应用未配置入口图标且未申请隐藏图标特权(AllowHideDesktopIcon),则会在桌面上显示一个默认图标,点击后跳转至应用详情页。此处的未配置入口图标规则如下:
1. 应用中未配置abilities字段
2. 应用中配置了abilities字段,但是没有任何一个page类型的ability中skills如下,即同时包含"ohos.want.action.home"和"entity.system.home":
```json
"skills": [
{
"actions": [
"ohos.want.action.home"
],
"entities": [
"entity.system.home"
]
}
]
```
对于符合上面规则的应用,均属于无图标应用,通过hdc_std install 或者 bm install的方式安装,均会在桌面上显示一个默认图标。
如果应用不需要再桌面显示图标,需要申请相应的隐藏图标特权AllowHideDesktopIcon,并在签名证书文件中或者白名单(install_list_capability.json)配置,可以参考:[应用特权配置指南](../../../device-dev/subsystems/subsys-app-privilege-config-guide.md)
如果应该需要在桌面显示图标,则需要在abilities中选择一个ability配置skills,同时包含"ohos.want.action.home"和"entity.system.home"。
**变更影响**<br>
对之前的版本镜像无影响,对使用3.2.10.5版本及之后的系统镜像,如果应用未配置图标,通过命令行的安装方式会在桌面显示默认图标。
**关键的接口/组件变更**<br>
不涉及接口及组件变更
**适配指导**<br>
如果应用不需要再桌面显示图标,需要申请相应的隐藏图标特权AllowHideDesktopIcon,并在签名证书文件中或者白名单(install_list_capability.json)配置,可以参考:[应用特权配置指南](../../../device-dev/subsystems/subsys-app-privilege-config-guide.md)
如果应该需要在桌面显示图标,则需要在abilities中选择一个ability配置skills,同时包含"ohos.want.action.home"和"entity.system.home"。
## cl.bundlemanager.3 底层能力变更,特权AllowAppUsePrivilegeExtension、AllowAppMultiProcess和AllowFormVisibleNotify不支持通过签名证书配置,仅支持通过白名单install_list_capability.json申请这三个特权。
特权AllowAppUsePrivilegeExtension、AllowAppMultiProcess和AllowFormVisibleNotify不支持通过签名证书配置,仅支持通过白名单install_list_capability.json申请这三个特权。对于在签名证书中申请使用上面三个特权的应用,在新版本上可能出现安装失败或者配置特权无效的问题。
如果出现了下面的报错,可能是因为特权整改导致的,应用需要适配新的规则,可以参考:[应用特权配置指南](../../../device-dev/subsystems/subsys-app-privilege-config-guide.md)
```
error: install parse profile prop check error.
```
对于xts或者本地调试的demo,无法修改板子上install_list_capability.json的,可以修改应用的bundleName,需要以"com.acts."为开头,同时在签名证书中申请对应的特权。
申请特权AllowAppUsePrivilegeExtension,通常是在应用的配置文件中使用了extensionAbilities字段,且其中的type属性为dataShare或者service。如果未配置特权,就会出现安装失败问题。
**变更影响**<br>
对之前的版本镜像无影响,对使用3.2.10.5版本及之后的系统镜像,如果未在白名单install_list_capability.json中申请所需的特权,可能会出现应用安装失败问题。
**关键的接口/组件变更**<br>
不涉及接口及组件变更
**适配指导**<br>
如果出现了下面的报错,可能是因为特权整改导致的,应用需要适配新的规则,可以参考:[应用特权配置指南](../../../device-dev/subsystems/subsys-app-privilege-config-guide.md)
```
error: install parse profile prop check error.
```
对于xts或者本地调试的demo,无法修改开发板上install_list_capability.json的,可以修改应用的bundleName,需要以"com.acts."为开头,同时在签名证书中申请对应的特权。
## cl.bundlemanager.4 底层能力变更,安装hap时,hap中的文件不再解压到安装目录。
安装hap后,安装目录下只会存在hap文件,应用不能再使用拼接路径访问解压后的资源文件,应用想要访问资源文件,需要使用标准的资源管理接口。
**变更影响**<br>
如果应用使用拼接路径的形式访问资源文件,会访问失败。需要修改成使用资源管理接口访问资源文件。
**关键的接口/组件变更**<br>
不涉及接口及组件变更
**适配指导**<br>
资源管理子系统提供Js接口访问资源文件。参考[访问资源文件](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-resource-manager.md#getrawfilecontent9)
# 元能力子系统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
# 元能力子系统ChangeLog
OpenHarmony 3.2.12.2版本相较于OpenHarmony3.2release版本,元能力子系统的API新增了更为详细的返回错误码信息,便于开发者更加有效地使用相关API接口。
## cl.ability.1 API错误码新增及优化描述
相较之前版本,对于接口的错误码描述及接口可能返回的所有错误码均进行了注释说明,开发者可以通过相关错误码进行更为准确的错误流程控制。
**变更影响**
影响API9版本的JS接口对外声明,对实际功能无影响,开发者可选择是否适配。
**关键的接口/组件变更**
本次变更主要涉及如下模块的注释更新,详细请参考对应的对外接口声明及API开发指导文档:
| 模块 | 主要变更点说明 |
| ----------------------------------- | ------------------------------------------------------------ |
| @ohos.app.ability.UIAbility | 增加16200001、16200002、16200004、16200005、16000050等错误码返回说明 |
| @ohos.app.ability.abilityManager | 增加201、202、16000050等错误码返回说明,调整401等错误码返回说明 |
| @ohos.app.ability.appManager | 增加201、202、16000050等错误码返回说明,调整401等错误码返回说明 |
| @ohos.app.ability.dataUriUtils | 增加401等错误码返回说明 |
| @ohos.app.ability.errorManager | 增加16000003等错误码返回说明 |
| @ohos.app.ability.missionManager | 增加201、202、16300001、16300002、16000009等错误码返回说明,调整401等错误码返回说明 |
| @ohos.app.ability.quickFixManager | 增加201、202、18500001、18500002、18500008等错误码返回说明 |
| @ohos.app.ability.wantAgent | 增加16000007、16000015、16000151等错误码返回说明 |
| application/AbilityDelegator | 增加16000001、16000002、16000004、16000005、16000006、16000008、16000009、16000010、16000011、16000050、16000053、16000055、16200001、16000100等错误码返回说明 |
| application/ApplicationContext | 增加16000011、16000050等错误码返回说明 |
| application/Context | 增加201、202、401等错误码返回说明 |
| application/ServiceExtensionContext | 增加201、202、16000001、16000002、16000004、16000005、16000006、16000008、16000009、16000010、16000011、16000050、16000053、16000055、16200001等错误码返回说明 |
| application/UIAbilityContext | 增加201、16000001、16000002、16000004、16000005、16000006、16000008、16000009、16000010、16000011、16000050、16000053、16000055、16200001、16000100等错误码返回说明 |
| @ohos.app.form.formHost | 增加201、202、16500050、16500060、16501000、16501001、16501003等错误码返回说明,调整401等错误码返回说明 |
| @ohos.app.form.formProvider | 增加202、16500050、16500060、16500100、16501000、16501001、16501002、16501003,调整401等错误码返回说明 |
| application/FormExtensionContext | 增加202、401、16500050、16500100、16500101、16501000等错误码返回说明 |
# 时间通知子系统ChangeLog
OpenHarmony 3.2.12.2版本相较于OpenHarmony3.2release版本,事件通知子系统的API新增了更为详细的返回错误码信息,便于开发者更加有效地使用相关API接口。
## cl.notification.1 API错误码新增及优化描述
相较之前版本,对于接口的错误码描述及接口可能返回的所有错误码均进行了注释说明,开发者可以通过相关错误码进行更为准确的错误流程控制。
**变更影响**
影响API9版本的JS接口对外声明,对实际功能无影响,开发者可选择是否适配。
**关键的接口/组件变更**
本次变更主要涉及如下模块的注释更新,详细请参考对应的对外接口声明及API开发指导文档:
| 模块 | 主要变更点说明 |
| --------------------------- | ------------------------------------------------------------ |
| @ohos.commonEventManager | 增加801、1500007、1500008等错误码返回说明 |
| @ohos.notificationManager | 增加201、202、1600001、1600002、1600003、1600004、1600005、1600007、1600008、1600009、1600010、17700001等错误码返回说明,调整401等错误码返回说明 |
| @ohos.notificationSubscribe | 增加201、202、1600001、1600002、1600003、1600007、1600008、17700001等错误码返回说明,调整401等错误码返回说明 |
# 帐号子系统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"
]
}
}
}]
}
# 分布式调度子系统ChangeLog
## cl.DistributedManagerService.1 continuationManager接口新增DATASYNC权限校验
此前版本continuationManager接口未对调用方进行校验,不符合OpenHarmony的API接口规范。
已做出以下变更:调用方使用continuationManager前需提前申请"ohos.permission.DISTRIBUTED_DATASYNC"权限。
**变更影响**
基于此前版本开发的应用,需提前申请"ohos.permission.DISTRIBUTED_DATASYNC"权限,否则会影响原有业务逻辑。
**关键的接口/组件变更**
涉及接口
- continuationManager.registerContinuation;
- continuationManager.on;
- continuationManager.off;
- continuationManager.unregisterContinuation;
- continuationManager.updateContinuationState;
- continuationManager.startContinuationDeviceManager;
# 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
```
# 用户IAM子系统Changelog
## cl.useriam.1 API9 GetVesion接口删除
为优化用户IAM接口,从当前版本开始做如下变更:
用户IAM删除GetVersion(API 9)接口。
**变更影响**
对用户IAM GetVersion(API 9)接口的使用有影响,需删除对此接口的调用,否则会调用失败。
**关键接口/组件变更**
| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
| ---------------------- | ------------------- | ------------------------- | ------------------------ |
| ohos.userIAM.userAuth | function | getVersion() : number | 删除 |
**适配指导**
需删除对用户IAM GetVersion(API 9)接口的调用。
## cl.useriam.2 API8 GetVesion接口返回值变更
为统一用户IAM GetVersion(API 8)接口的返回值。从当前版本开始做如下变更:
用户IAM GetVersion(API 8)接口的返回值由0变更为1。
**变更影响**
对用户IAM GetVersion(API 8)接口的使用有影响,如应用校验了此接口的返回值,修改后校验不通过。
**关键接口/组件变更**
用户IAM GetVersion(API 8)接口的返回值由0变更为1。
**适配指导**
此接口已废弃,需删除对用户IAM GetVersion(API 8)接口的使用。
# 帐号子系统ChangeLog
## cl.account_os_account.1 分布式帐号昵称和头像规格扩大
已有分布式帐号的昵称长度和头像大小的规格过小,无法满足其他昵称较长、头像较大的使用场景。
因此,将分布式帐号昵称长度和头像大小的规格扩大。
**变更影响**
该接口变更前向兼容,基于此前版本开发的应用可按照最新规格使用该接口,原有逻辑不受影响。
**关键接口/组件变更**
变更前:
- 昵称长度限制为20个字符,头像大小限制为3M
变更后:
- 昵称长度限制为1024个字符,头像大小限制为10M
# web子系统ChangeLog
OpenHarmony 4.0.2.1 版本相较于OpenHarmony 之前的版本,web的API变更如下。
## cl.web.1 postMessageEvent参数类型变更
该接口postMessageEvent原先仅支持string类型,从4.0.2.1版本开始新增支持ArrayBuffer类型。
**变更影响**
该接口变更前向兼容,基于此前版本开发的应用可继续使用接口,原有功能不受影响。
**关键的接口/组件变更**
- 涉及接口
postMessageEvent(message: string): void
- 变更前:
```ts
postMessageEvent(message: string): void
```
- 变更后:
```ts
type WebMessage = ArrayBuffer | string
postMessageEvent(message: WebMessage): void
```
**适配指导**
该接口变更前向兼容,基于此前版本开发的应用可继续使用接口,原有功能不受影响。
## cl.web.2 onMessageEvent参数类型变更
该接口onMessageEvent原先仅支持string类型,从4.0.2.1版本开始新增支持ArrayBuffer类型。
**变更影响**
该接口变更前向兼容,基于此前版本开发的应用可继续使用接口,增加相应的逻辑处理,原有功能不受影响。
**关键的接口/组件变更**
- 涉及接口
onMessageEvent(callback: (result: string) => void): void
- 变更前:
```ts
onMessageEvent(callback: (result: string) => void): void
```
- 变更后:
```ts
type WebMessage = ArrayBuffer | string
onMessageEvent(callback: (result: WebMessage) => void): void
```
**适配指导**
该接口变更前向兼容,基于此前版本开发的应用可继续使用接口,增加相应的逻辑处理,原有功能不受影响。
\ No newline at end of file
# 全球化子系统ChangeLog
## cl.global.1 国际化模块系统接口添加运行时鉴权
全球化子系统国际化组件在如下场景中提供的系统接口添加运行时鉴权。从API9开始作以下变更:
- 设置系统语言、系统国家或地区、系统区域
- 设置系统24小时制
- 添加、移除系统偏好语言
- 设置本地化数字
开发者需要根据以下说明对应用进行适配。
**变更影响**
上述场景涉及的国际化系统接口添加运行时鉴权,只有具有UPDATE_CONFIGURATION权限的系统应用可以正常调用。
**关键的接口/组件变更**
- 涉及接口
- setSystemLanguage(language: string): void;
- setSystemRegion(region: string): void;
- setSystemLocale(locale: string): void;
- set24HourClock(option: boolean): void;
- addPreferredLanguage(language: string, index?: number): void;
- removePreferredLanguage(index: number): void;
- setUsingLocalDigit(flag: boolean): void;
**适配指导**
确保应用为系统应用,非系统应用禁止调用上述接口。
当前权限不足或非系统应用调用该接口时会抛出异常,可以通过try-catch来捕获异常。
```js
import I18n from '@ohos.i18n'
try {
I18n.System.setSystemLanguage('zh');
} catch(error) {
console.error(`call System.setSystemLanguage failed, error code: ${error.code}, message: ${error.message}.`)
}
```
\ No newline at end of file
# web子系统ChangeLog
OpenHarmony 4.0.2.2 版本相较于OpenHarmony 之前的版本,web的API变更如下。
## cl.web.1 删除webDebuggingAccess接口
该接口定义不合理,该属性对所有web实例生效的,属于全局配置。用本次新增的接口setWebDebuggingAccess替换。
**变更影响**
该接口删除无法再使用,请使用新增的接口setWebDebuggingAccess替换。
**关键的接口/组件变更**
| 类名 | 接口类型 | 接口声明 | 变更类型 |
| -- | -- | -- | -- |
|WebAttribute | method | webDebugggingAccess(webDebugggingAccess: boolean): WebAttribute| 删除 |
**适配指导**
该接口删除无法再使用,请使用新增的接口setWebDebuggingAccess替换。
## cl.web.2 新增setWebDebuggingAccess接口
WebviewController提供静态方法来设置调试模式开关,该设置对所有web实例生效。
**变更影响**
原有webDebugggingAccess属性定义不合理,因此新增该静态接口来设置调试模式开关。应用侧需要使用该接口来打开调试模式开关。
**关键的接口/组件变更**
| 类名 | 接口类型 | 接口声明 | 变更类型 |
| -- | -- | -- | -- |
|webview.WebviewController | method | static setWebDebugggingAccess(webDebugggingAccess: boolean): void| 新增 |
**适配指导**
以打开调试开关为例,示例代码如下:
```ts
// xxx.ets
import web_webview from '@ohos.web.webview';
@Entry
@Component
struct WebComponent {
controller: web_webview.WebviewController = new web_webview.WebviewController();
aboutToAppear():void {
try {
web_webview.WebviewController.setWebDebuggingAccess(true);
} catch(error) {
console.error(`ErrorCode: ${error.code}, Message: ${error.message}`);
}
}
build() {
Column() {
Web({ src: 'www.example.com', controller: this.controller })
}
}
}
\ No newline at end of file
# 包管理子系统ChangeLog
## cl.bundlemanager.1 底层能力变更,安装hap时,hap中的文件不再解压到安装目录。
安装hap后,安装目录下只会存在hap文件,应用不能再使用拼接路径访问解压后的资源文件,应用想要访问资源文件,需要使用标准的资源管理接口。
**变更影响**<br>
如果应用使用拼接路径的形式访问资源文件,会访问失败。需要修改成使用资源管理接口访问资源文件。
**关键的接口/组件变更**<br>
不涉及接口及组件变更
**适配指导**<br>
资源管理子系统提供Js接口访问资源文件。参考[访问资源文件](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-resource-manager.md#getrawfilecontent9)
# 元能力子系统ChangeLog
## cl.ability.1 appRecovery接口中RestartFlag属性名称变更,删除了未支持的属性
appRecovery接口中RestartFlag枚举命名从特定故障发生后**不重启**改成了特定故障发生后**重启**
删除了CPP_CRASH_NO_RESTART。
**变更影响**
4.0.2.3版本之前使用CPP_CRASH_NO_RESTART/JS_CRASH_NO_RESTART/APP_FREEZE_NO_RESTART类型开发的应用,在4.0.2.3版本之后行为会发生变化。
**关键接口/组件变更**
**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
# USB服务子系统ChangeLog
## cl.usb_manager.1 包名变更
基于此前版本开发的应用,需修改导入的包名,否则会影响原有业务逻辑。
**关键接口/组件变更**
| 旧包名 | 新包名 |
|------------------ | ------------------- |
| ohos.usbV9.d.ts | ohos.usbManager.d.ts |
**适配指导**
开发者导入时将@ohos.usbV9更换为@ohos.usbManager即可。
## cl.usb_manager.2 接口参数类型变更
基于此前版本开发的应用,需修改参数类型,否则会影响原有业务逻辑。
**关键接口/组件变更**
| 旧类名 | 新类名 |
|---------------| ------------- |
| interface USBConfig | interface USBConfiguration |
| 旧命名空间 | 新命名空间 |
|---------------| ------------- |
| @namespace usbV9 | @namespace usbManager |
| 包名 | 旧接口 | 新接口 |
| --------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| ohos.usbManager.d.ts | function setConfiguration(pipe: USBDevicePipe, config: USBConfig): number; | function setConfiguration(pipe: USBDevicePipe, config: USBConfiguration): number; |
**适配指导**
调用setConfiguration接口时参数类型USBConfig修改为USBConfiguration即可。
\ No newline at end of file
# arkui子系统ChangeLog
## cl.arkui.1 getInspectorTree接口返回值从string修改为Object。
**变更影响**
4.0.3.2之前使用getInspectorTree接口的代码需要适配
**关键的接口/组件变更**
getInspectorTree接口返回值从string修改为Object
**适配指导**
将getInspectorTree返回值作为string使用的代码需要修改,比如以下示例代码:
```typescript
console.info(getInspectorTree())
```
需要修改成
```typescript
console.info(JSON.stringify(getInspectorTree()))
```
## cl.arkui.2 废弃GridItem的forceRebuild属性
**变更影响**
无,该属性无作用
**关键的接口/组件变更**
GridItem的forceRebuild属性废弃
**适配指导**
如有使用可以直接删除,不影响GridItem功能
## cl.arkui.1 API9 router接口整改。
ohos.router中的enableAlertBeforeBackPage、enableBackPageAlert、disableAlertBeforeBackPage接口名不利于开发者理解,更改为showAlertBeforeBackPage、hideAlertBeforeBackPage。
**变更影响**
router的enableAlertBeforeBackPage、enableBackPageAlert接口需替换为showAlertBeforeBackPage;
disableAlertBeforeBackPage接口需替换为hideAlertBeforeBackPage。
**关键的接口/组件变更**
涉及router.enableAlertBeforeBackPage, router.enableBackPageAlert, router.disableAlertBeforeBackPage。
* 变更前:
```ts
router.enableAlertBeforeBackPage();
router.enableBackPageAlert()
```
* 变更后:
```ts
router.showAlertBeforeBackPage()
```
* 变更前:
```ts
router.disableAlertBeforeBackPage()
```
* 变更后:
```ts
router.hideAlertBeforeBackPage()
```
**适配指导**
将enableAlertBeforeBackPage、enableBackPageAlert替换为showAlertBeforeBackPage;
将disableAlertBeforeBackPage替换为hideAlertBeforeBackPage。
# 包管理子系统ChangeLog
## cl.bundlemanager.1 包管理删除@ohos.bundle.bundleManager.d.ts中的getAbilityIcon接口,可以使用@ohos.resourceManager.d.ts中的getMediaContent替换。
包管理删除[@ohos.bundle.bundleManager.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.bundleManager.d.ts)中的getAbilityIcon接口,可以使用[@ohos.resourceManager.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.resourceManager.d.ts)中的getMediaContent替换。
**变更影响**<br>
使用之前已发布的API 9各beta版本且使用到了getAbilityIcon接口的,需要改为使用getMediaContent接口。
**关键的接口/组件变更**<br>
删除@ohos.bundle.bundleManager.d.ts中的getAbilityIcon接口。
**适配指导**<br>
使用@ohos.bundle.bundleManager.d.ts下面的getAbilityIcon,需要修改为@ohos.resourceManager.d.ts中的getMediaContent。需要提前获取到图标的资源ID值,可参考该接口的[使用指导](../../../application-dev/reference/apis/js-apis-resource-manager.md#getmediacontent9)
## cl.bundlemanager.2 包管理新增202错误码
包管理系统新增202错误码,非系统应用调用api9及之后包管理提供的系统api,将返回错误202。
**变更影响**<br>
非系统应用调用api9及之后包管理提供的系统api,将返回错误202。
**关键的接口/组件变更**<br>
所有包管理提供的api9及之后的系统api,非系统应用调用将返回错误202。
**适配指导**<br>
不影响已开发的程序,无需适配。
\ No newline at end of file
# 文件管理子系统ChangeLog
## cl.filemanagement.1 Filter类型模块变更
**变更影响**
基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现Filter类型变更至@ohos.file.fs模块下。Filter类型具体属性不变。
**关键接口/组件变更**
原Filter类型在模块@ohos.fileio下,通过以下方式import:
```js
import Filter from '@ohos.fileio';
```
**适配指导**
现Filter类型在模块@ohos.file.fs,通过以下方式import:
```js
import Filter from '@ohos.file.fs';
```
# 资源调度子系统ChangeLog
## cl.resourceschedule.workScheduler
WorkSchedulerExtensionAbility提供默认的WorkSchedulerExtensionContext。
**变更影响**
基于OpenHarmony4.0.5.1及之后的SDK版本开发的应用,可使用默认的context属性作为WorkSchedulerExtension的上下文环境。
**关键接口/组件变更**
@ohos.WorkSchedulerExtensionAbility.d.ts中新增context属性。新增文件application/WorkSchedulerExtensionContext.d.ts,继承自ExtensionContext。
| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
| -- | -- | -- | -- |
| @ohos.WorkSchedulerExtensionAbility.d.ts | WorkSchedulerExtensionAbility | context: WorkSchedulerExtensionContext; | 新增 |
| application/WorkSchedulerExtensionContext.d.ts | WorkSchedulerExtensionContext | - | 新增 |
**适配指导**<br>
通过WorkSchedulerExtensionAbility子类实例来获取WorkSchedulerExtensionContext。
```ts
import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility';
class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility {
onWorkStart(workInfo) {
let WorkSchedulerExtensionContext = this.context; // 获取WorkSchedulerExtensionContext
}
}
```
\ No newline at end of file
# 元能力子系统ChangeLog
## cl.ability.appRecovery新增saveAppState接口
新增接口saveAppState(context?: UIAbilityContext): boolean;
**变更影响**
基于OpenHarmony4.0.5.2及之后的SDK版本开发的应用,可以使用saveAppState接口传入指定Ability Context,实现主动保存指定的Ability状态。
**关键接口/组件变更**
@ohos.app.ability.appRecovery.d.ts中新增saveAppState接口。
| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
| -- | -- | -- | -- |
| @ohos.app.ability.appRecovery.d.ts | appRecovery | saveAppState(context?: UIAbilityContext): boolean; | 新增 |
**适配指导**
通过调用saveAppState传入UIAbility Context参数主动保存此指定的Ability的状态。
```ts
import appRecovery from '@ohos.app.ability.appRecovery';
onBackground() {
hilog.info(0x0000, '[demo]', '%{public}s', 'EntryAbility onBackground');
appRecovery.saveAppState(this.context)
}
```
## cl.ability.appRecovery新增setRestartWant接口
新增接口setRestartWant(want: Want): void;
**变更影响**
基于OpenHarmony4.0.5.2及之后的SDK版本开发的应用,可以使用setRestartWant接口设置下次由恢复主动拉起场景下的Ability。
**关键接口/组件变更**
@ohos.app.ability.appRecovery.d.ts中新增setRestartWant接口。
| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
| -- | -- | -- | -- |
| @ohos.app.ability.appRecovery.d.ts | appRecovery | setRestartWant(want: Want): void; | 新增 |
**适配指导**
通过调用setRestartWant设置下次恢复到的指定Ability。
```ts
import appRecovery from '@ohos.app.ability.appRecovery';
Button("启动到恢复Ability")
.fontSize(40)
.fontWeight(FontWeight.Bold)
.onClick(()=> {
// set restart want
let want = {
bundleName: "ohos.samples.recovery",
abilityName: "RecoveryAbility"
};
appRecovery.setRestartWant(want);
})
```
\ No newline at end of file
# arkui子系统ChangeLog
## cl.arkui.1 List组件和Gird组件滚动条默认状态变更
List组件和Gird组件滚动条默认状态从BarState.Off变更为BarState.Auto。
**变更影响**
List组件和Gird组件,如果没有设置滚动条状态,变更前不会显示滚动条,变更以后滚动时会显示滚动条,滚动停止两秒后滚动条隐藏。
**关键接口/组件变更**
List组件和Gird组件滚动条API接口文档:
- [List组件属性](../../../application-dev/reference/arkui-ts/ts-container-list.md#属性)
- [Grid组件属性](../../../application-dev/reference/arkui-ts/ts-container-grid.md#属性)
**适配指导**
对于不需要滚动条的场景,需要将List组件或Grid组件的scrollBar属性设置为BarState.Off。
参考代码如下:
```ts
// xxx.ets
@Entry
@Component
struct ListItemExample {
private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
build() {
Column() {
List({ space: 20, initialIndex: 0 }) {
ForEach(this.arr, (item) => {
ListItem() {
Text('' + item)
.width('100%').height(100).fontSize(16)
.textAlign(TextAlign.Center).borderRadius(10).backgroundColor(0xFFFFFF)
}
}, item => item)
}
.width('90%')
.scrollBar(BarState.Off)
}.width('100%').height('100%').backgroundColor(0xDCDCDC).padding({ top: 5 })
}
}
```
\ No newline at end of file
# HUKS子系统ChangeLog
OpenHarmony 4.0.6.1 版本相较于OpenHarmony 之前的版本,HUKS的API使用权限变更如下。
## cl.huks.1 attestKeyItem接口使用权限变更
attestKeyItem是基于设备证书链封装业务公钥对用户指定的密钥进行证明,如果设备证书随意导出涉及用户隐私风险,所以此接口需要增加系统权限管控。
**变更影响**
对于不具备system权限或者ohos.permission.ACCESS_IDS权限的应用,无法正常使用attestKeyItem接口。
**关键的接口/组件变更**
- 涉及接口
attestKeyItem(keyAlias: string, options: HuksOptions, callback: AsyncCallback\<HuksReturnResult\>): void;
attestKeyItem(keyAlias: string, options: HuksOptions): Promise\<HuksReturnResult\>;
- 变更前:
只针对传入ATTESTATION_ID相关TAG的应用校验AccessToken权限,其它情况无接口权限的限制。
- 变更后:
只有具备system权限的系统应用或者申请了ohos.permission.ACCESS_IDS权限的普通应用才能正常使用attestKeyItem接口。
**适配指导**
已经具备system权限的应用则可以正常使用attestKeyItem接口,其余普通应用需申请ohos.permission.ACCESS_IDS权限即可,申请方法参考[ACL权限配置说明](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/accesstoken-overview.md#%E8%AE%BF%E9%97%AE%E6%8E%A7%E5%88%B6%E5%88%97%E8%A1%A8acl%E8%AF%B4%E6%98%8E)
\ No newline at end of file
# web子系统ChangeLog
OpenHarmony 4.0.6.1 版本相较于OpenHarmony 之前的版本,web的API变更如下。
## cl.web.1 createWebMessagePorts接口参数
由于WebMessagePort需要新增支持更多数据类型,因此在该接口增加一个可选参数来区分新老接口。
**变更影响**
无,可选参数,可前向兼容。
**关键的接口/组件变更**
- 涉及接口
createWebMessagePorts(): Array<WebMessagePort>;
- 变更前:
```ts
createWebMessagePorts(): Array<WebMessagePort>;
```
- 变更后:
```ts
createWebMessagePorts(isExtentionType?: boolean): Array<WebMessagePort>;
```
**适配指导**
已有应用无需适配。
\ No newline at end of file
# USB服务子系统ChangeLog
## cl.usb_manager.1 sdk接口删除
基于此前版本开发的应用,需修改导入的包名,否则会影响原有业务逻辑。
**关键接口/组件变更**
@ohos.usbV9.d.ts文件已删除,由@ohos.usbManager.d.ts替代。
| 新包名 | 旧包名 | 已删除包名 |
| -------------------- | ------------- | --------------- |
| ohos.usbManager.d.ts | ohos.usb.d.ts | ohos.usbV9.d.ts |
后续需要import @ohos.usbManager才能使用USB服务的接口:
```ts
import usbManager from '@ohos.usbManager';
```
**适配指导**
请参考各接口的[API文档](../../../application-dev/reference/apis/js-apis-usbManager.md)
# 全球化子系统ChangeLog
## cl.resourceManager.1 getStringSync、getStringByNameSync新增接口
相较于之前的版本,在4.0.6.2 版本中,为扩展getStringSync、getStringByNameSync接口字符串匹配功能,新增了接口以及相应的错误码。
| 包名 | 新增接口 |
| --------------- | ---------------------------------------------------- |
| ohos.resourceManager.d.ts | getStringSync(resId: number, ...args: Array<string \| number>): string; |
| ohos.resourceManager.d.ts | getStringSync(resource: Resource, ...args: Array<string \| number>): string; |
| ohos.resourceManager.d.ts | getStringByNameSync(resName: string, ...args: Array<string \| number>): string; |
**变更影响**
之前只能直接获取resources中的string资源的value值,在4.0.6.2 及以上版本中可用通过参数格式化string资源的value值,扩展了格式化字符串的查询能力。
新增错误码:
9001007 根据当前id获取的资源格式化失败
9001008 根据当前名称获取的资源格式化失败
**示例代码**
以调用接口getStringSync为例,变更前只支持示例1,变更后示例1、示例2都支持。
```
示例1:
try {
this.context.resourceManager.getStringSync($r('app.string.test').id);
} catch (error) {
console.error(`getStringSync failed, error code: ${error.code}, message: ${error.message}.`)
}
示例2:
try {
this.context.resourceManager.getStringSync($r('app.string.test').id, "format string", 787, 98.78);
} catch (error) {
console.error(`getStringSync failed, error code: ${error.code}, message: ${error.message}.`)
}
```
**适配指导**
请参考接口说明:
[新增接口参考](../../../application-dev/reference/apis/js-apis-resource-manager.md)
[新增错误码参考](../../../application-dev/reference/errorcodes/errorcode-resource-manager.md)
\ No newline at end of file
# ArkUI子系统ChangeLog
修复问题:[Stack](../../../application-dev/reference/arkui-ts/ts-container-stack.md)设置alignContent,在子组件超出父组件的场景中,子组件未按照alignContent布局
示例:
```ts
@Entry
@Component
struct StackExample {
build() {
Stack({alignContent:Alignment.TopEnd}){
Text('First child, show in bottom')
.width(200).height(200).backgroundColor(0xd2cab3).margin(10)
}.width(150).height(150).backgroundColor(Color.Pink).margin(100)
}
}
```
修复前:子组件未能按照alignContent:Alignment.TopEnd布局
![stack](figures/stack_before.jpg)
修复后:子组件可以按照alignContent:Alignment.TopEnd布局
![stack](figures/stack_after.jpg)
**变更影响**
1. 如果应用中有子组件大小大于父组件Stack的场景,需要应用进行适配。
2. 应用之前可能采用的规避方案:给子组件设置Offset或者translate
**适配指导**
去掉之前给子组件设置的Offset或者translate,使用alignContent实际布局方式进行布局。
\ No newline at end of file
# Readme
- [元能力](changelogs-ability.md)
- [ArkUI](changelogs-arkui.md)
- [包管理](changelogs-bundlemanager.md)
- [输入法框架](changelogs-imf.md)
- [全局资源调度](changelogs-resourceschedule.md)
- [主题框架-锁屏](changelogs-screenlock.md)
- [电话服务](changelogs-telephony.md)
- [util](changelogs-util.md)
- [主题框架-壁纸](changelogs-wallpaper.md)
- [web组件](changelogs-web.md)
# arkui子系统ChangeLog # arkui子系统ChangeLog
## cl.arkui.1 getInspectorTree接口返回值从string修改为Object。 ## cl.arkui.1 getInspectorTree接口返回值从string修改为Object。
**变更影响** **变更影响**
3.2.10.7之前使用getInspectorTree接口的代码需要适配 3.2.10.7之前使用getInspectorTree接口的代码需要适配
**关键的接口/组件变更** **关键的接口/组件变更**
getInspectorTree接口返回值从string修改为Object getInspectorTree接口返回值从string修改为Object
**适配指导** **适配指导**
将getInspectorTree返回值作为string使用的代码需要修改,比如以下示例代码: 将getInspectorTree返回值作为string使用的代码需要修改,比如以下示例代码:
```typescript ```typescript
console.info(getInspectorTree()) console.info(getInspectorTree())
``` ```
需要修改成 需要修改成
```typescript ```typescript
console.info(JSON.stringify(getInspectorTree())) console.info(JSON.stringify(getInspectorTree()))
``` ```
## cl.arkui.2 废弃GridItem的forceRebuild属性 ## cl.arkui.2 废弃GridItem的forceRebuild属性
**变更影响** **变更影响**
无,该属性无作用 无,该属性无作用
**关键的接口/组件变更** **关键的接口/组件变更**
GridItem的forceRebuild属性废弃 GridItem的forceRebuild属性废弃
**适配指导** **适配指导**
如有使用可以直接删除,不影响GridItem功能 如有使用可以直接删除,不影响GridItem功能
## cl.arkui.3 Plugin模块接口变更 ## cl.arkui.3 Plugin模块接口变更
### 1. arkui子系统Plugin模块 `PluginComponentTemplate` 接口存在变更: ### 1. arkui子系统Plugin模块 `PluginComponentTemplate` 接口存在变更:
ability命名无法准确表达对应参数的语义,修改为bundleName。 ability命名无法准确表达对应参数的语义,修改为bundleName。
开发者需要根据以下说明对应用进行适配。 开发者需要根据以下说明对应用进行适配。
**变更影响** **变更影响**
基于此前版本开发的应用,需适配变更接口,变更前的接口已经不能正常使用,会在编译过程中报错。 基于此前版本开发的应用,需适配变更接口,变更前的接口已经不能正常使用,会在编译过程中报错。
**关键的接口/组件变更** **关键的接口/组件变更**
- 涉及接口 - 涉及接口
interface PluginComponentTemplate { interface PluginComponentTemplate {
source: string; source: string;
bundleName: string; bundleName: string;
} }
interface PluginComponentInterface { interface PluginComponentInterface {
(value: { template: PluginComponentTemplate; data: any }): PluginComponentAttribute; (value: { template: PluginComponentTemplate; data: any }): PluginComponentAttribute;
} }
- 变更前: - 变更前:
```js ```js
interface PluginComponentTemplate { source: string; ability: string; } interface PluginComponentTemplate { source: string; ability: string; }
interface PluginComponentInterface { interface PluginComponentInterface {
(value: { template: PluginComponentTemplate; data: any }): PluginComponentAttribute; (value: { template: PluginComponentTemplate; data: any }): PluginComponentAttribute;
} }
``` ```
- 变更后: - 变更后:
```js ```js
interface PluginComponentTemplate { source: string; bundleName: string; } interface PluginComponentTemplate { source: string; bundleName: string; }
interface PluginComponentInterface { interface PluginComponentInterface {
(value: { template: PluginComponentTemplate; data: any }): PluginComponentAttribute; (value: { template: PluginComponentTemplate; data: any }): PluginComponentAttribute;
} }
``` ```
**适配指导** **适配指导**
使用变更后的接口,示例代码如下: 使用变更后的接口,示例代码如下:
- 变更前: - 变更前:
```js ```js
PluginComponent({ PluginComponent({
template: { source: 'plugincomponent1', ability: 'com.example.plugin' }, template: { source: 'plugincomponent1', ability: 'com.example.plugin' },
data: { 'countDownStartValue': 'new countDownStartValue' } data: { 'countDownStartValue': 'new countDownStartValue' }
}).size({ width: 500, height: 100 }) }).size({ width: 500, height: 100 })
``` ```
- 变更后: - 变更后:
```js ```js
PluginComponent({ PluginComponent({
template: { source: 'plugincomponent1', bundleName: 'com.example.plugin' }, template: { source: 'plugincomponent1', bundleName: 'com.example.plugin' },
data: { 'countDownStartValue': 'new countDownStartValue' } data: { 'countDownStartValue': 'new countDownStartValue' }
}).size({ width: 500, height: 100 }) }).size({ width: 500, height: 100 })
``` ```
### 2. arkui子系统Plugin模块 `pluginComponentManager` 接口存在变更: ### 2. arkui子系统Plugin模块 `pluginComponentManager` 接口存在变更:
want命名无法准确表达对应参数的语义,修改为target。 want命名无法准确表达对应参数的语义,修改为target。
开发者需要根据以下说明对应用进行适配。 开发者需要根据以下说明对应用进行适配。
**变更影响** **变更影响**
基于此前版本开发的应用,需适配变更接口。变更前的接口会出现告警,虽然可以通过编译,但是已经不能正常使用其功能。 基于此前版本开发的应用,需适配变更接口。变更前的接口会出现告警,虽然可以通过编译,但是已经不能正常使用其功能。
**关键的接口/组件变更** **关键的接口/组件变更**
- 涉及接口 - 涉及接口
interface PushParameterForStage { interface PushParameterForStage {
owner: Want; owner: Want;
target: Want; target: Want;
name: string; name: string;
data: KVObject; data: KVObject;
extraData: KVObject; extraData: KVObject;
jsonPath?: string; jsonPath?: string;
} }
function push(param: PushParameterForStage, callback: AsyncCallback<void>): void; function push(param: PushParameterForStage, callback: AsyncCallback<void>): void;
interface RequestParameterForStage { interface RequestParameterForStage {
owner: Want; owner: Want;
target: Want; target: Want;
name: string; name: string;
data: KVObject; data: KVObject;
jsonPath?: string; jsonPath?: string;
} }
function request(param: RequestParameterForStage, callback: AsyncCallback<RequestCallbackParameters>): void; function request(param: RequestParameterForStage, callback: AsyncCallback<RequestCallbackParameters>): void;
- 变更前: - 变更前:
```js ```js
interface PushParameterForStage { interface PushParameterForStage {
owner: Want; owner: Want;
want: Want; want: Want;
name: string; name: string;
data: KVObject; data: KVObject;
extraData: KVObject; extraData: KVObject;
jsonPath?: string; jsonPath?: string;
} }
function push(param: PushParameterForStage, callback: AsyncCallback<void>): void; function push(param: PushParameterForStage, callback: AsyncCallback<void>): void;
interface RequestParameterForStage { interface RequestParameterForStage {
owner: Want; owner: Want;
want: Want; want: Want;
name: string; name: string;
data: KVObject; data: KVObject;
jsonPath?: string; jsonPath?: string;
} }
function request(param: RequestParameterForStage, callback: AsyncCallback<RequestCallbackParameters>): void; function request(param: RequestParameterForStage, callback: AsyncCallback<RequestCallbackParameters>): void;
``` ```
- 变更后: - 变更后:
```js ```js
interface PushParameterForStage { interface PushParameterForStage {
owner: Want; owner: Want;
target: Want; target: Want;
name: string; name: string;
data: KVObject; data: KVObject;
extraData: KVObject; extraData: KVObject;
jsonPath?: string; jsonPath?: string;
} }
function push(param: PushParameterForStage, callback: AsyncCallback<void>): void; function push(param: PushParameterForStage, callback: AsyncCallback<void>): void;
interface RequestParameterForStage { interface RequestParameterForStage {
owner: Want; owner: Want;
target: Want; target: Want;
name: string; name: string;
data: KVObject; data: KVObject;
jsonPath?: string; jsonPath?: string;
} }
function request(param: RequestParameterForStage, callback: AsyncCallback<RequestCallbackParameters>): void; function request(param: RequestParameterForStage, callback: AsyncCallback<RequestCallbackParameters>): void;
``` ```
**适配指导** **适配指导**
使用变更后的接口,示例代码如下: 使用变更后的接口,示例代码如下:
- 变更前: - 变更前:
```js ```js
import pluginComponentManager from '@ohos.pluginComponent' import pluginComponentManager from '@ohos.pluginComponent'
pluginComponentManager.push({ pluginComponentManager.push({
owner:{ owner:{
bundleName:"com.example.provider", bundleName:"com.example.provider",
abilityName:"com.example.provider.MainAbility" abilityName:"com.example.provider.MainAbility"
}, },
want: { want: {
bundleName: "com.example.provider", bundleName: "com.example.provider",
abilityName: "com.example.provider.MainAbility", abilityName: "com.example.provider.MainAbility",
}, },
name: "ets/pages/plugin2.js", name: "ets/pages/plugin2.js",
data: { data: {
"js": "ets/pages/plugin.js", "js": "ets/pages/plugin.js",
"key_1": 1111, "key_1": 1111,
}, },
extraData: { extraData: {
"extra_str": "this is push event" "extra_str": "this is push event"
}, },
jsonPath: "", jsonPath: "",
}, },
(err, data) => { (err, data) => {
console.log("push_callback:err: " ,JSON.stringify(err)); console.log("push_callback:err: " ,JSON.stringify(err));
console.log("push_callback:data: " , JSON.stringify(data)); console.log("push_callback:data: " , JSON.stringify(data));
console.log("push_callback: push ok!"); console.log("push_callback: push ok!");
} }
) )
pluginComponentManager.request({ pluginComponentManager.request({
owner:{ owner:{
bundleName:"com.example.provider", bundleName:"com.example.provider",
abilityName:"com.example.provider.MainAbility" abilityName:"com.example.provider.MainAbility"
}, },
want: { want: {
bundleName: "com.example.provider", bundleName: "com.example.provider",
abilityName: "ets/pages/plugin2.js", abilityName: "ets/pages/plugin2.js",
}, },
name: "plugintemplate", name: "plugintemplate",
data: { data: {
"key_1": " myapplication plugin component test", "key_1": " myapplication plugin component test",
"key_2": 123456 "key_2": 123456
}, },
jsonPath: "", jsonPath: "",
}, },
(err, data) => { (err, data) => {
console.log("request_callback: componentTemplate.ability=" + data.componentTemplate.ability) console.log("request_callback: componentTemplate.ability=" + data.componentTemplate.ability)
console.log("request_callback: componentTemplate.source=" + data.componentTemplate.source) console.log("request_callback: componentTemplate.source=" + data.componentTemplate.source)
} }
) )
``` ```
- 变更后: - 变更后:
```js ```js
import pluginComponentManager from '@ohos.pluginComponent' import pluginComponentManager from '@ohos.pluginComponent'
pluginComponentManager.push({ pluginComponentManager.push({
owner:{ owner:{
bundleName:"com.example.provider", bundleName:"com.example.provider",
abilityName:"com.example.provider.MainAbility" abilityName:"com.example.provider.MainAbility"
}, },
target: { target: {
bundleName: "com.example.provider", bundleName: "com.example.provider",
abilityName: "com.example.provider.MainAbility", abilityName: "com.example.provider.MainAbility",
}, },
name: "ets/pages/plugin2.js", name: "ets/pages/plugin2.js",
data: { data: {
"js": "ets/pages/plugin.js", "js": "ets/pages/plugin.js",
"key_1": 1111, "key_1": 1111,
}, },
extraData: { extraData: {
"extra_str": "this is push event" "extra_str": "this is push event"
}, },
jsonPath: "", jsonPath: "",
}, },
(err, data) => { (err, data) => {
console.log("push_callback:err: " ,JSON.stringify(err)); console.log("push_callback:err: " ,JSON.stringify(err));
console.log("push_callback:data: " , JSON.stringify(data)); console.log("push_callback:data: " , JSON.stringify(data));
console.log("push_callback: push ok!"); console.log("push_callback: push ok!");
} }
) )
pluginComponentManager.request({ pluginComponentManager.request({
owner:{ owner:{
bundleName:"com.example.provider", bundleName:"com.example.provider",
abilityName:"com.example.provider.MainAbility" abilityName:"com.example.provider.MainAbility"
}, },
target: { target: {
bundleName: "com.example.provider", bundleName: "com.example.provider",
abilityName: "ets/pages/plugin2.js", abilityName: "ets/pages/plugin2.js",
}, },
name: "plugintemplate", name: "plugintemplate",
data: { data: {
"key_1": " myapplication plugin component test", "key_1": " myapplication plugin component test",
"key_2": 123456 "key_2": 123456
}, },
jsonPath: "", jsonPath: "",
}, },
(err, data) => { (err, data) => {
console.log("request_callback: componentTemplate.ability=" + data.componentTemplate.ability) console.log("request_callback: componentTemplate.ability=" + data.componentTemplate.ability)
console.log("request_callback: componentTemplate.source=" + data.componentTemplate.source) console.log("request_callback: componentTemplate.source=" + data.componentTemplate.source)
} }
) )
``` ```
...@@ -232,14 +232,67 @@ module.json配置文件中的ability的[name](../../../application-dev/quick-sta ...@@ -232,14 +232,67 @@ module.json配置文件中的ability的[name](../../../application-dev/quick-sta
**适配指导**<br> **适配指导**<br>
删除module.json中[distroFilter](../../../application-dev/quick-start/module-configuration-file.md)标签,使用distributionFilter替代 删除module.json中[distroFilter](../../../application-dev/quick-start/module-configuration-file.md)标签,使用distributionFilter替代
## cl.bundlemanager.20 module.json配置文件中launchType标签standard模式修改为multiton ## cl.bundlemanager.20 module.json配置文件中launchTypede标签standard模式修改为multiton
删除module.json中[launchType](../../../application-dev/quick-start/module-configuration-file.md)标签的standard模式修改为multiton 删除module.json中[launchType](../../../application-dev/quick-start/module-configuration-file.md)标签的standard模式修改为multiton
**适配指导**<br> **适配指导**<br>
删除module.json中[launchType](../../../application-dev/quick-start/module-configuration-file.md)标签的standard模式,使用multiton替代 删除module.json中[launchType](../../../application-dev/quick-start/module-configuration-file.md)标签的standard模式,使用multiton替代
## cl.bundlemanager.21 module.json配置文件中abilities的标签visible修改为exported ## cl.bundlemanager.21 app.json配置文件删除atomicService标签
module.json中[abilities](../../../application-dev/quick-start/module-configuration-file.md)的标签visible修改为exported,表示当前ability是否支持导出,被其他的ability使用。 删除配置文件app.json中atomicService标签
**变更影响**<br>
删除配置文件app.json中atomicService标签,IDE中不再支持配置该标签,使用该标签会导致IDE编译报错
**适配指导**<br>
删除atomicService标签
## cl.bundlemanager.22 app.json配置文件新增bundleType标签
配置文件app.json中新增bundleType标签
**变更影响**<br>
现存的元服务([installationFree](../../../application-dev/quick-start/module-configuration-file.md)为true),必须在app.json中指定bundleType为atomicService,否则打包失败。
**适配指导**<br>
新增[bundleType](../../../application-dev/quick-start/app-configuration-file.md)标签。该标签为可缺省(缺省值为app)。该标签需要和module.json中[installationFree](../../../application-dev/quick-start/module-configuration-file.md)字段保持一一对应,其相应规则为:
- 当bundleType为app时,installationFree必须为false。
- 当bundleType为atomicService时,installationFree必须为true。
## cl.bundlemanager.23 包管理ApplicationInfo结构体中删除split字段。
包管理[ApplicationInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/ApplicationInfo.d.ts)结构体中删除split字段。
**变更影响**<br>
使用之前已发布的API 9各beta版本且使用到了split的,会编译失败。
**关键的接口/组件变更**<br>
包管理[ApplicationInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/ApplicationInfo.d.ts)结构体中删除split字段。
**适配指导**<br>
删除ApplicationInfo结构体中的split字段。目前元服务中stage模型强制分包,不支持不分包。
## cl.bundlemanager.24 包管理HapModuleInfo结构体中删除atomicServiceModuleType字段。
包管理[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中删除atomicServiceModuleType字段。
**变更影响**<br>
使用之前已发布的API 9各beta版本且使用到了atomicServiceModuleType的,会编译失败。
**关键的接口/组件变更**<br>
包管理[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中删除atomicServiceModuleType字段。
**适配指导**<br>
删除[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中的atomicServiceModuleType字段。判断atomicServiceModuleType字段的部分,用[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中的moduleType代替。
## cl.bundlemanager.25 包管理删除AtomicServiceModuleType枚举值。
包管理[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中删除atomicServiceModuleType字段。
**变更影响**<br>
使用之前已发布的API 9各beta版本且使用到了atomicServiceModuleType的,会编译失败。
**关键的接口/组件变更**<br>
包管理[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中删除atomicServiceModuleType字段。
**适配指导**<br> **适配指导**<br>
删除module.json中[abilities](../../../application-dev/quick-start/module-configuration-file.md)的visible标签,使用exported标签替代 删除[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中的atomicServiceModuleType字段。判断atomicServiceModuleType字段的部分,用[HapModuleInfo](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/bundleManager/HapModuleInfo.d.ts)结构体中的moduleType代替。
\ No newline at end of file \ No newline at end of file
# 资源调度子系统ChangeLog # 资源调度子系统ChangeLog
## cl.resourceschedule.workScheduler ## cl.resourceschedule.workScheduler
修改parameters属性值的数据类型,不允许使用any类型,支持number、string、boolean三种类型。 修改parameters属性值的数据类型,不允许使用any类型,支持number、string、boolean三种类型。
**变更影响** **变更影响**
基于OpenHarmony3.2.10.7及之后的SDK版本开发的应用,parameters属性值的数据类型不允许使用any类型,仅支持number、string、boolean三种类型,否则将编译报错。 基于OpenHarmony3.2.10.7及之后的SDK版本开发的应用,parameters属性值的数据类型不允许使用any类型,仅支持number、string、boolean三种类型,否则将编译报错。
**关键接口/组件变更** **关键接口/组件变更**
@ohos.resourceschedule.workScheduler.d.ts中的parameters属性变更。 @ohos.resourceschedule.workScheduler.d.ts中的parameters属性变更。
| 类名 | 接口类型 | 变更前声明 | 变更后声明 | | 类名 | 接口类型 | 变更前声明 | 变更后声明 |
| -- | -- | -- | -- | | -- | -- | -- | -- |
| workScheduler.WorkInfo | field | parameters?: {[key: string]: any} | parameters?: {[key: string]: number | string | boolean} | | workScheduler.WorkInfo | field | parameters?: {[key: string]: any} | parameters?: {[key: string]: number | string | boolean} |
**适配指导**<br> **适配指导**<br>
parameters属性使用{[key: string]: number | string | boolean}数据类型。 parameters属性使用{[key: string]: number | string | boolean}数据类型。
\ No newline at end of file
# util系统JS API变更Changelog # util系统JS API变更Changelog
OpenHarmony 3.2.10.7(Mr)版本相较于OpenHarmony 3.2.beta4版本,util子系统的API变更如下 OpenHarmony 3.2.10.7(Mr)版本相较于OpenHarmony 3.2.beta4版本,util子系统的API变更如下
## cl.util.1.randomUUID接口名变更 ## cl.util.1.randomUUID接口名变更
util子系统randomUUID函数名存在变更: util子系统randomUUID函数名存在变更:
function randomUUID(entropyCache?: boolean): string 改为 function generateRandomUUID(entropyCache?: boolean): string 函数名由原来的randomUUID改为generateRandomUUID。 function randomUUID(entropyCache?: boolean): string 改为 function generateRandomUUID(entropyCache?: boolean): string 函数名由原来的randomUUID改为generateRandomUUID。
开发者需要根据以下说明对应用进行适配。 开发者需要根据以下说明对应用进行适配。
**变更影响** **变更影响**
影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。 影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。
**关键的接口/组件变更** **关键的接口/组件变更**
| 模块名 | 方法/属性/枚举/常量 | 变更类型 | | 模块名 | 方法/属性/枚举/常量 | 变更类型 |
| :---------- | ------------------- | ------- | | :---------- | ------------------- | ------- |
| @ohos.util | function randomUUID(entropyCache?: boolean): string | 删除 | | @ohos.util | function randomUUID(entropyCache?: boolean): string | 删除 |
| @ohos.util | function generateRandomUUID(entropyCache?: boolean): string| 变更 | | @ohos.util | function generateRandomUUID(entropyCache?: boolean): string| 变更 |
**适配指导** **适配指导**
应用中使用generateRandomUUID可参考下列代码 应用中使用generateRandomUUID可参考下列代码
示例: 示例:
```ts ```ts
import util from '@ohos.util' import util from '@ohos.util'
let uuid = util.generateRandomUUID(true); let uuid = util.generateRandomUUID(true);
console.log("RFC 4122 Version 4 UUID:" + uuid); console.log("RFC 4122 Version 4 UUID:" + uuid);
// 输出: // 输出:
// RFC 4122 Version 4 UUID:88368f2a-d5db-47d8-a05f-534fab0a0045 // RFC 4122 Version 4 UUID:88368f2a-d5db-47d8-a05f-534fab0a0045
``` ```
## cl.util.2.randomBinaryUUID接口名变更 ## cl.util.2.randomBinaryUUID接口名变更
util子系统randomBinaryUUID函数名存在变更: util子系统randomBinaryUUID函数名存在变更:
function randomBinaryUUID(entropyCache?: boolean): Uint8Array 改为 function generateRandomBinaryUUID(entropyCache?: boolean): Uint8Array 函数名由原来的randomBinaryUUID改为generateRandomBinaryUUID。 function randomBinaryUUID(entropyCache?: boolean): Uint8Array 改为 function generateRandomBinaryUUID(entropyCache?: boolean): Uint8Array 函数名由原来的randomBinaryUUID改为generateRandomBinaryUUID。
开发者需要根据以下说明对应用进行适配。 开发者需要根据以下说明对应用进行适配。
**变更影响** **变更影响**
影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。 影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。
**关键的接口/组件变更** **关键的接口/组件变更**
| 模块名 | 方法/属性/枚举/常量 | 变更类型 | | 模块名 | 方法/属性/枚举/常量 | 变更类型 |
| :---------- | ------------------- | ------- | | :---------- | ------------------- | ------- |
| @ohos.util | function randomBinaryUUID(entropyCache?: boolean): Uint8Array; | 删除 | | @ohos.util | function randomBinaryUUID(entropyCache?: boolean): Uint8Array; | 删除 |
| @ohos.util | function generateRandomBinaryUUID(entropyCache?: boolean): Uint8Array| 变更 | | @ohos.util | function generateRandomBinaryUUID(entropyCache?: boolean): Uint8Array| 变更 |
**适配指导** **适配指导**
应用中使用generateRandomBinaryUUID可参考下列代码 应用中使用generateRandomBinaryUUID可参考下列代码
示例: 示例:
```ts ```ts
import util from '@ohos.util' import util from '@ohos.util'
let uuid = util.generateRandomBinaryUUID(true); let uuid = util.generateRandomBinaryUUID(true);
console.log(JSON.stringify(uuid)); console.log(JSON.stringify(uuid));
// 输出: // 输出:
// 138,188,43,243,62,254,70,119,130,20,235,222,199,164,140,150 // 138,188,43,243,62,254,70,119,130,20,235,222,199,164,140,150
``` ```
## cl.util.3.LRUCache类contains接口参数类型变更 ## cl.util.3.LRUCache类contains接口参数类型变更
util子系统LRUCache类contains接口参数类型变更: util子系统LRUCache类contains接口参数类型变更:
contains(key: object): boolean 改为 contains(key: K): boolean 参数类型由原来的object改为K。 contains(key: object): boolean 改为 contains(key: K): boolean 参数类型由原来的object改为K。
开发者需要根据以下说明对应用进行适配。 开发者需要根据以下说明对应用进行适配。
**变更影响** **变更影响**
影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。 影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。
**关键的接口/组件变更** **关键的接口/组件变更**
| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | | 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 |
| :-------- | ---------| -------------------------------- | -------- | | :-------- | ---------| -------------------------------- | -------- |
| @ohos.util | LRUCache | contains(key: object): boolean | 删除 | | @ohos.util | LRUCache | contains(key: object): boolean | 删除 |
| @ohos.util | LRUCache | contains(key: K): boolean | 变更 | | @ohos.util | LRUCache | contains(key: K): boolean | 变更 |
**适配指导** **适配指导**
应用中使用contains函数可参考下列代码 应用中使用contains函数可参考下列代码
示例: 示例:
```ts ```ts
import util from '@ohos.util' import util from '@ohos.util'
let pro = new util.LRUCache(); let pro = new util.LRUCache();
pro.put(2,10); pro.put(2,10);
let obj = {1:"key"}; let obj = {1:"key"};
let result = pro.contains(obj); let result = pro.contains(obj);
``` ```
\ No newline at end of file
# web子系统ChangeLog # web子系统ChangeLog
OpenHarmony 4.0.3.2 版本相较于OpenHarmony 之前的版本,web的API变更如下。 OpenHarmony 3.2.10.7 版本相较于OpenHarmony 之前的版本,web的API变更如下。
## cl.web.1 HitTestTypeV9命名变更 ## cl.web.1 HitTestTypeV9命名变更
...@@ -8,7 +8,7 @@ OpenHarmony 4.0.3.2 版本相较于OpenHarmony 之前的版本,web的API变更 ...@@ -8,7 +8,7 @@ OpenHarmony 4.0.3.2 版本相较于OpenHarmony 之前的版本,web的API变更
**变更影响** **变更影响**
枚举类HitTestTypeV9,以及使用HitTestTypeV9作为参数或返回值的接口,在4.0.3.2版本及后续版本中无法继续正常使用。 枚举类HitTestTypeV9,以及使用HitTestTypeV9作为参数或返回值的接口,在3.2.10.7版本及后续版本中无法继续正常使用。
**关键的接口/组件变更** **关键的接口/组件变更**
...@@ -38,7 +38,7 @@ OpenHarmony 4.0.3.2 版本相较于OpenHarmony 之前的版本,web的API变更 ...@@ -38,7 +38,7 @@ OpenHarmony 4.0.3.2 版本相较于OpenHarmony 之前的版本,web的API变更
**变更影响** **变更影响**
结构体HeaderV9,以及使用HeaderV9作为参数或返回值的接口,在4.0.3.2版本及后续版本中无法继续正常使用。 结构体HeaderV9,以及使用HeaderV9作为参数或返回值的接口,在3.2.10.7版本及后续版本中无法继续正常使用。
**关键的接口/组件变更** **关键的接口/组件变更**
...@@ -68,7 +68,7 @@ OpenHarmony 4.0.3.2 版本相较于OpenHarmony 之前的版本,web的API变更 ...@@ -68,7 +68,7 @@ OpenHarmony 4.0.3.2 版本相较于OpenHarmony 之前的版本,web的API变更
**变更影响** **变更影响**
结构体HitTestValue,以及使用HitTestValue作为参数或返回值的接口,在4.0.3.2版本及后续版本中无法继续正常使用。 结构体HitTestValue,以及使用HitTestValue作为参数或返回值的接口,在3.2.10.7版本及后续版本中无法继续正常使用。
**关键的接口/组件变更** **关键的接口/组件变更**
...@@ -128,7 +128,7 @@ loadUrl接口中的参数headers,由于其类型的命名规范问题,类型 ...@@ -128,7 +128,7 @@ loadUrl接口中的参数headers,由于其类型的命名规范问题,类型
**变更影响** **变更影响**
loadUrl接口若使用了headers参数,则在4.0.3.2版本及后续版本中无法继续正常使用。 loadUrl接口若使用了headers参数,则在3.2.10.7版本及后续版本中无法继续正常使用。
**关键的接口/组件变更** **关键的接口/组件变更**
...@@ -158,7 +158,7 @@ getHitTest接口中的返回值,由于其类型的命名规范问题,变更为 ...@@ -158,7 +158,7 @@ getHitTest接口中的返回值,由于其类型的命名规范问题,变更为
**变更影响** **变更影响**
getHitTest接口,在4.0.3.2版本及后续版本中无法继续正常使用。 getHitTest接口,在3.2.10.7版本及后续版本中无法继续正常使用。
**关键的接口/组件变更** **关键的接口/组件变更**
......
# Readme
- [元能力](changelogs-ability.md)
- [帐号](changelogs-account_os_account.md)
- [ArkUI](changelogs-arkui.md)
- [多媒体-相机](changelogs-camera.md)
- [设备管理](changelogs-device-manager.md)
- [USB](changelogs-device-usb.md)
- [分布式调度](changelogs-dmsfwk.md)
- [分布式软总线](changelogs-dsoftbus.md)
- [定制管理](changelogs-enterprise_device_management.md)
- [文件管理](changelogs-filemanagement.md)
- [位置服务](changelogs-geolocation.md)
- [全球化](changelogs-global.md)
- [输入法框架](changelogs-inputmethod-framworks.md)
- [多媒体](changelogs-multimedia.md)
- [多模输入](changelogs-multimodalinput.md)
- [事件通知](changelogs-notification.md)
- [电源管理](changelogs-power.md)
- [上传下载](changelogs-request.md)
- [资源管理](changelogs-resource-manager.md)
- [资源调度](changelogs-resourceschedule.md)
- [电话服务](changelogs-telephony.md)
- [测试](changelogs-testfwk_arkxtest.md)
- [主题](changelogs-theme.md)
- [用户IAM](changelogs-useriam.md)
- [元能力-WantAgent](changelogs-wantAgent.md)
- [Web](changelogs-web.md)
- [基础通信-WIFI](changelogs-wifi.md)
# 帐号子系统changeLog # 帐号子系统changeLog
## cl.account_os_account.1 变更错误码定义及其返回方式 ## cl.account_os_account.1 变更错误码定义及其返回方式
针对帐号子系统API存在错误码定义不统一和抛出方式不符合OpenHarmony错误码规范的问题,从API9开始作以下变更: 针对帐号子系统API存在错误码定义不统一和抛出方式不符合OpenHarmony错误码规范的问题,从API9开始作以下变更:
- 新增统一的错误码定义: - 新增统一的错误码定义:
- [帐号公共错误码](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/errorcodes/errorcode-account.md) [帐号公共错误码](../../../application-dev/reference/errorcodes/errorcode-account.md)
- [应用帐号错误码](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/errorcodes/errorcode-account.md)
- 按以下方式返回错误码:
- 按以下方式返回错误码: - 异步接口:错误信息通过AsyncCallback或Promise的error对象返回。其中,参数类型和数量错误信息,通过抛出异常的方式返回。
- 异步接口:错误信息通过AsyncCallback或Promise的error对象返回。其中,参数类型和数量错误信息,通过抛出异常的方式返回。 - 同步接口:错误信息通过抛出异常的方式返回。
- 同步接口:错误信息通过抛出异常的方式返回。
**变更影响**
**变更影响**
基于此前版本开发的应用,需适配变更后的新错误码和错误信息返回方式,否则会影响原有业务逻辑。
基于此前版本开发的应用,需适配变更后的新错误码和错误信息返回方式,否则会影响原有业务逻辑。
**关键接口/组件变更**
**关键接口/组件变更**
以下接口涉及新错误码和错误信息返回方式变更:
以下接口涉及新错误码和错误信息返回方式变更: - class AccountManager
- class AccountManager - activateOsAccount(localId: number, callback: AsyncCallback&lt;void&gt;): void;
- activateOsAccount(localId: number, callback: AsyncCallback&lt;void&gt;): void; - removeOsAccount(localId: number, callback: AsyncCallback&lt;void&gt;): void;
- removeOsAccount(localId: number, callback: AsyncCallback&lt;void&gt;): void; - setOsAccountConstraints(localId: number, constraints: Array&lt;string&gt;, enable: boolean, callback: AsyncCallback&lt;void&gt;): void;
- setOsAccountConstraints(localId: number, constraints: Array&lt;string&gt;, enable: boolean, callback: AsyncCallback&lt;void&gt;): void; - setOsAccountName(localId: number, localName: string, callback: AsyncCallback&lt;void&gt;): void;
- setOsAccountName(localId: number, localName: string, callback: AsyncCallback&lt;void&gt;): void; - queryMaxOsAccountNumber(callback: AsyncCallback&lt;number&gt;): void;
- queryMaxOsAccountNumber(callback: AsyncCallback&lt;number&gt;): void; - queryAllCreatedOsAccounts(callback: AsyncCallback&lt;Array&lt;OsAccountInfo&gt;&gt;): void;
- queryAllCreatedOsAccounts(callback: AsyncCallback&lt;Array&lt;OsAccountInfo&gt;&gt;): void; - createOsAccount(localName: string, type: OsAccountType, callback: AsyncCallback&lt;OsAccountInfo&gt;): void;
- createOsAccount(localName: string, type: OsAccountType, callback: AsyncCallback&lt;OsAccountInfo&gt;): void; - createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo, callback: AsyncCallback&lt;OsAccountInfo&gt;): void;
- createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo, callback: AsyncCallback&lt;OsAccountInfo&gt;): void; - queryOsAccountById(localId: number, callback: AsyncCallback&lt;OsAccountInfo&gt;): void;
- queryOsAccountById(localId: number, callback: AsyncCallback&lt;OsAccountInfo&gt;): void; - getOsAccountProfilePhoto(localId: number, callback: AsyncCallback&lt;string&gt;): void;
- getOsAccountProfilePhoto(localId: number, callback: AsyncCallback&lt;string&gt;): void; - setOsAccountProfilePhoto(localId: number, photo: string, callback: AsyncCallback&lt;void&gt;): void;
- setOsAccountProfilePhoto(localId: number, photo: string, callback: AsyncCallback&lt;void&gt;): void; - on(type: 'activate' | 'activating', name: string, callback: Callback&lt;number&gt;): void;
- on(type: 'activate' | 'activating', name: string, callback: Callback&lt;number&gt;): void; - off(type: 'activate' | 'activating', name: string, callback?: Callback&lt;number&gt;): void;
- off(type: 'activate' | 'activating', name: string, callback?: Callback&lt;number&gt;): void; - isMainOsAccount(callback: AsyncCallback&lt;boolean&gt;): void;
- isMainOsAccount(callback: AsyncCallback&lt;boolean&gt;): void; - queryOsAccountConstraintSourceTypes(localId: number, constraint: string, callback: AsyncCallback&lt;Array&lt;ConstraintSourceTypeInfo&gt;&gt;): void;
- queryOsAccountConstraintSourceTypes(localId: number, constraint: string, callback: AsyncCallback&lt;Array&lt;ConstraintSourceTypeInfo&gt;&gt;): void; - class UserAuth
- class UserAuth - constructor();
- constructor(); - getVersion(): number;
- getVersion(): number; - getAvailableStatus(authType: AuthType, authTrustLevel: AuthTrustLevel): number;
- getAvailableStatus(authType: AuthType, authTrustLevel: AuthTrustLevel): number; - getProperty(request: GetPropertyRequest, callback: AsyncCallback&lt;ExecutorProperty&gt;): void;
- getProperty(request: GetPropertyRequest, callback: AsyncCallback&lt;ExecutorProperty&gt;): void; - setProperty(request: SetPropertyRequest, callback: AsyncCallback&lt;number&gt;): void;
- setProperty(request: SetPropertyRequest, callback: AsyncCallback&lt;number&gt;): void; - auth(challenge: Uint8Array, authType: AuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array;
- auth(challenge: Uint8Array, authType: AuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array; - authUser(userId: number, challenge: Uint8Array, authType: AuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array;
- authUser(userId: number, challenge: Uint8Array, authType: AuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array; - cancelAuth(contextID: Uint8Array): number;
- cancelAuth(contextID: Uint8Array): number; - class PINAuth
- class PINAuth - constructor();
- constructor(); - registerInputer(inputer: IInputer): boolean;
- registerInputer(inputer: IInputer): boolean; - unregisterInputer(authType: AuthType): void;
- unregisterInputer(authType: AuthType): void; - class UserIdentityManager
- class UserIdentityManager - constructor();
- constructor(); - openSession(callback: AsyncCallback&lt;Uint8Array&gt;): void;
- openSession(callback: AsyncCallback&lt;Uint8Array&gt;): void; - addCredential(credentialInfo: CredentialInfo, callback: IIdmCallback): void;
- addCredential(credentialInfo: CredentialInfo, callback: IIdmCallback): void; - updateCredential(credentialInfo: CredentialInfo, callback: IIdmCallback): void;
- updateCredential(credentialInfo: CredentialInfo, callback: IIdmCallback): void; - closeSession(): void;
- closeSession(): void; - cancel(challenge: Uint8Array): number;
- cancel(challenge: Uint8Array): number; - delUser(token: Uint8Array, callback: IIdmCallback): void;
- delUser(token: Uint8Array, callback: IIdmCallback): void; - delCred(credentialId: Uint8Array, token: Uint8Array, callback: IIdmCallback): void;
- delCred(credentialId: Uint8Array, token: Uint8Array, callback: IIdmCallback): void; - getAuthInfo(callback: AsyncCallback&lt;Array&lt;EnrolledCredInfo&gt;&gt;): void;
- getAuthInfo(callback: AsyncCallback&lt;Array&lt;EnrolledCredInfo&gt;&gt;): void; - interface IInputData
- interface IInputData - onSetData: (authSubType: AuthSubType, data: Uint8Array) =&gt; void;
- onSetData: (authSubType: AuthSubType, data: Uint8Array) =&gt; void;
**适配指导**
**适配指导**
异步接口的错误信息处理逻辑以activateOsAccount为例,示例代码如下:
异步接口的错误信息处理逻辑以activateOsAccount为例,示例代码如下:
```ts
```ts import account_osAccount from "@ohos.account.osAccount"
import account_osAccount from "@ohos.account.osAccount" let accountMgr = account_osAccount.getAccountManager()
let accountMgr = account_osAccount.getAccountManager() let callbackFunc = (err) => {
let callbackFunc = (err) => { if (err != null) { // handle the bussiness error
if (err != null) { // handle the bussiness error console.log("account_osAccount failed, error: " + JSON.stringify(err));
console.log("account_osAccount failed, error: " + JSON.stringify(err)); } else {
} else { console.log("account_osAccount successfully");
console.log("account_osAccount successfully"); }
} }
} try {
try { accountMgr.activateOsAccount("100", callbackFunc);
accountMgr.activateOsAccount("100", callbackFunc); } catch (err) { // handle the parameter type error
} catch (err) { // handle the parameter type error console.log("account_osAccount failed for incorrect parameter type, error: " + JSON.stringify(err));
console.log("account_osAccount failed for incorrect parameter type, error: " + JSON.stringify(err)); }
} try {
try { accountMgr.activateOsAccount();
accountMgr.activateOsAccount(); } catch (err) { // handle the parameter number error
} catch (err) { // handle the parameter number error console.log("account_osAccount failed for incorrect parameter number, error: " + JSON.stringify(err));
console.log("account_osAccount failed for incorrect parameter number, error: " + JSON.stringify(err)); }
} ```
```
同步接口的错误信息处理以registerInputer为例,示例代码如下:
同步接口的错误信息处理以registerInputer为例,示例代码如下:
```ts
```ts import account_osAccount from "@ohos.account.osAccount"
import account_osAccount from "@ohos.account.osAccount" let pinAuth = new account_osAccount.PINAuth()
let pinAuth = new account_osAccount.PINAuth() try {
try { pinAuth.registerInputer({})
pinAuth.registerInputer({}) } catch (err) { // handle the parameter type error
} catch (err) { // handle the parameter type error console.log("account_osAccount failed for incorrect parameter type, error: " + JSON.stringify(err));
console.log("account_osAccount failed for incorrect parameter type, error: " + JSON.stringify(err)); }
} try {
try { pinAuth.registerInputer()
pinAuth.registerInputer() } catch (err) { // handle the parameter number error
} catch (err) { // handle the parameter number error console.log("account_osAccount failed for incorrect parameter number, error: " + JSON.stringify(err));
console.log("account_osAccount failed for incorrect parameter number, error: " + JSON.stringify(err)); }
} ```
```
# 帐号子系统ChangeLog
## cl.account_os_account.2 帐号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.3 应用帐号鉴权服务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",
"srcEnty": "./ets/ServiceAbility/ServiceAbility.ts",
...
"visible": true,
"skills": {
{
"actions": [
"ohos.appAccount.action.auth"
]
}
}
}]
}
```
...@@ -69,7 +69,7 @@ ArkUI子系统alertDialog, actionSheet, customDialog组件及prompt, promptActio ...@@ -69,7 +69,7 @@ ArkUI子系统alertDialog, actionSheet, customDialog组件及prompt, promptActio
## cl.arkui.3 自定义组件成员变量初始化的方式与约束校验场景补全 ## cl.arkui.3 自定义组件成员变量初始化的方式与约束校验场景补全
[自定义组件成员变量初始化规则](../../../application-dev/quick-start/arkts-restrictions-and-extensions.md#自定义组件成员变量初始化的方式与约束)请参考文档,此版本修复了某些遗漏场景的校验。 自定义组件成员变量初始化规则请参考文档,此版本修复了某些遗漏场景的校验。
**变更影响** **变更影响**
...@@ -86,7 +86,7 @@ ArkUI子系统alertDialog, actionSheet, customDialog组件及prompt, promptActio ...@@ -86,7 +86,7 @@ ArkUI子系统alertDialog, actionSheet, customDialog组件及prompt, promptActio
## cl.arkui.4 自定义父子组件成员变量赋值约束校验场景补全 ## cl.arkui.4 自定义父子组件成员变量赋值约束校验场景补全
[自定义父子组件成员变量赋值规则](../../../application-dev/quick-start/arkts-restrictions-and-extensions.md#自定义组件成员变量初始化的方式与约束)请参考文档,此版本修复了某些遗漏场景的校验。 自定义父子组件成员变量赋值规则请参考文档,此版本修复了某些遗漏场景的校验。
**变更影响** **变更影响**
......
# 媒体子系统JS API变更Changelog # 媒体子系统JS API变更Changelog
OpenHarmony3.2 Beta4版本相较于OpenHarmony3.2 Beta3版本,媒体子系统camera部件API变更如下
## camera接口变更 ## camera接口变更
基于以下原因新增部分功能接口以及废弃部分接口: 基于以下原因新增部分功能接口以及废弃部分接口:
1. 提升开发者使用相机接口的便利。 1. 提升开发者使用相机接口的便利。
......
# USB管理 changeLog # USB管理 changeLog
## cl.usb_manager.1 API错误信息返回方式变更 ## cl.usb_manager.1 API错误信息返回方式变更
USB管理接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。从API9开始作出变更,选择通过抛出异常的方式返回错误信息。 USB管理接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。从API9开始作出变更,选择通过抛出异常的方式返回错误信息。
**变更影响** **变更影响**
基于此前版本开发的应用,需适配接口的错误信息返回方式,否则会影响原有业务逻辑。 基于此前版本开发的应用,需适配接口的错误信息返回方式,否则会影响原有业务逻辑。
**关键接口/组件变更** **关键接口/组件变更**
USB模块名由@ohos.usb.d.ts 变更为 @ohos.usbV9.d.ts,模块内所有接口均增加错误码处理。 USB模块名由@ohos.usb.d.ts 变更为 @ohos.usbV9.d.ts,模块内所有接口均增加错误码处理。
**适配指导** **适配指导**
接口以getDevices为例,示例代码如下: 接口以getDevices为例,示例代码如下:
```ts ```ts
import usbV9 from '@ohos.usbV9' import usbV9 from '@ohos.usbV9'
try { try {
usbV9.getDevices(); // 如果给该接口传入不合适的参数,则会抛出异常 usbV9.getDevices(); // 如果给该接口传入不合适的参数,则会抛出异常
} catch (err) { } catch (err) {
console.error("getDevices errCode:" + err.code + ",errMessage:" + err.message); console.error("getDevices errCode:" + err.code + ",errMessage:" + err.message);
} }
``` ```
\ No newline at end of file
...@@ -99,4 +99,24 @@ continuationManager.off 设备取消选择事件 ...@@ -99,4 +99,24 @@ continuationManager.off 设备取消选择事件
} catch (err) { } catch (err) {
console.error('off failed, cause: ' + JSON.stringify(err)); console.error('off failed, cause: ' + JSON.stringify(err));
} }
``` ```
\ No newline at end of file
## cl.DistributedManagerService.2 continuationManager接口新增DATASYNC权限校验
此前版本continuationManager接口未对调用方进行校验,不符合OpenHarmony的API接口规范。
已做出以下变更:调用方使用continuationManager前需提前申请"ohos.permission.DISTRIBUTED_DATASYNC"权限。
**变更影响**
基于此前版本开发的应用,需提前申请"ohos.permission.DISTRIBUTED_DATASYNC"权限,否则会影响原有业务逻辑。
**关键的接口/组件变更**
涉及接口
- continuationManager.registerContinuation;
- continuationManager.on;
- continuationManager.off;
- continuationManager.unregisterContinuation;
- continuationManager.updateContinuationState;
- continuationManager.startContinuationDeviceManager;
\ No newline at end of file
# 定制子系统ChangeLog # 定制子系统ChangeLog
OpenHarmony 3.2.8.3 版本相较于OpenHarmony 3.2.8.1版本,定制子系统的API变更如下:
## cl.Customization.1 企业设备管理模块名称变更 ## cl.Customization.1 企业设备管理模块名称变更
从Opeharmonny 3.2.8.3版本开始,将"@ohos.enterpriseDeviceManager.d.ts"改为"@ohos.enterprise.adminManager.d.ts",开发者需要根据以下说明对应用进行适配。 从Opeharmonny 3.2.8.3版本开始,将"@ohos.enterpriseDeviceManager.d.ts"改为"@ohos.enterprise.adminManager.d.ts",开发者需要根据以下说明对应用进行适配。
......
# 上传下载子系统ChangeLog # 上传下载子系统ChangeLog
OpenHarmony 3.2.8.1版本相较于OpenHarmony 3.2.beta3版本,request子系统的API变更如下
## cl.request.1 错误码定义及API部分接口名称变更 ## cl.request.1 错误码定义及API部分接口名称变更
- 新增上传下载接口的[错误码](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/errorcodes/errorcode-request.md)处理。 - 新增上传下载接口的[错误码](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/errorcodes/errorcode-request.md)处理。
......
# 电话子系统ChangeLog # 电话子系统ChangeLog
## cl.telephony.1 sms模块SystemAPI接口入参变更 ## cl.telephony.1 sms模块SystemAPI接口入参变更
已发布的部分电话子系统sms短信模块SystemAPI传入参数发生变化,不符合OpenHarmony接口规范。从API9开始做出以下变更: 已发布的部分电话子系统sms短信模块SystemAPI传入参数发生变化,不符合OpenHarmony接口规范。从API9开始做出以下变更:
isImsSmsSupported接口新增一个传入参数slotId,表示卡槽号。 isImsSmsSupported接口新增一个传入参数slotId,表示卡槽号。
**变更影响** **变更影响**
基于此前版本开发的应用,需适配变更js接口的入参,否则会影响原有功能。 基于此前版本开发的应用,需适配变更js接口的入参,否则会影响原有功能。
**关键的接口/组件变更** **关键的接口/组件变更**
- 涉及接口 - 涉及接口
isImsSmsSupported(callback: AsyncCallback<boolean>): void; isImsSmsSupported(callback: AsyncCallback<boolean>): void;
isImsSmsSupported(): Promise<boolean>; isImsSmsSupported(): Promise<boolean>;
- 变更前: - 变更前:
```js ```js
function isImsSmsSupported(callback: AsyncCallback<boolean>): void; function isImsSmsSupported(callback: AsyncCallback<boolean>): void;
function isImsSmsSupported(): Promise<boolean>; function isImsSmsSupported(): Promise<boolean>;
``` ```
- 变更后: - 变更后:
```js ```js
function isImsSmsSupported(slotId: number, callback: AsyncCallback<boolean>): void; function isImsSmsSupported(slotId: number, callback: AsyncCallback<boolean>): void;
function isImsSmsSupported(slotId: number): Promise<boolean>; function isImsSmsSupported(slotId: number): Promise<boolean>;
``` ```
**适配指导** **适配指导**
新增一个入参,示例代码如下: 新增一个入参,示例代码如下:
callback方式 callback方式
```js ```js
let slotId = 0; let slotId = 0;
sms.isImsSmsSupported(slotId, (err, data) => { sms.isImsSmsSupported(slotId, (err, data) => {
console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
}); });
``` ```
promise方式 promise方式
```js ```js
let slotId = 0; let slotId = 0;
let promise = sms.isImsSmsSupported(slotId); let promise = sms.isImsSmsSupported(slotId);
promise.then(data => { promise.then(data => {
console.log(`isImsSmsSupported success, promise: data->${JSON.stringify(data)}`); console.log(`isImsSmsSupported success, promise: data->${JSON.stringify(data)}`);
}).catch(err => { }).catch(err => {
console.error(`isImsSmsSupported failed, promise: err->${JSON.stringify(err)}`); console.error(`isImsSmsSupported failed, promise: err->${JSON.stringify(err)}`);
}); });
``` ```
# 主题框架changeLog # 主题框架changeLog
## cl.theme.1 API9接口支持异常处理 ## cl.theme.1 API9接口支持异常处理
下列模块内部接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。在API9进行变更。 下列模块内部接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。在API9进行变更。
- 壁纸管理服务:@ohos.wallpaper.d.ts - 壁纸管理服务:@ohos.wallpaper.d.ts
- 锁屏管理服务:@ohos.screenLock.d.ts - 锁屏管理服务:@ohos.screenLock.d.ts
以上模块中的接口变更为: 以上模块中的接口变更为:
同步接口:通过抛出异常的方式返回错误信息。 同步接口:通过抛出异常的方式返回错误信息。
异步接口:参数检查错误同步抛出,业务逻辑错误通过AsyncCallback或Promise的error对象抛出。 异步接口:参数检查错误同步抛出,业务逻辑错误通过AsyncCallback或Promise的error对象抛出。
**变更影响** **变更影响**
基于此前版本开发的应用,需适配接口的错误信息返回方式,否则会影响原有业务逻辑。 基于此前版本开发的应用,需适配接口的错误信息返回方式,否则会影响原有业务逻辑。
**关键接口/组件变更** **关键接口/组件变更**
以下标记为壁纸管理服务接口废除: 以下标记为壁纸管理服务接口废除:
- getColors(wallpaperType: WallpaperType, callback: AsyncCallback<Array<RgbaColor>>): void; - getColors(wallpaperType: WallpaperType, callback: AsyncCallback<Array<RgbaColor>>): void;
- getColors(wallpaperType: WallpaperType): Promise<Array<RgbaColor>>; - getColors(wallpaperType: WallpaperType): Promise<Array<RgbaColor>>;
- getId(wallpaperType: WallpaperType, callback: AsyncCallback<number>): void; - getId(wallpaperType: WallpaperType, callback: AsyncCallback<number>): void;
- getId(wallpaperType: WallpaperType): Promise<number>; - getId(wallpaperType: WallpaperType): Promise<number>;
- getMinHeight(callback: AsyncCallback<number>): void; - getMinHeight(callback: AsyncCallback<number>): void;
- getMinHeight(): Promise<number>; - getMinHeight(): Promise<number>;
- getMinWidth(callback: AsyncCallback<number>): void; - getMinWidth(callback: AsyncCallback<number>): void;
- getMinWidth(): Promise<number>; - getMinWidth(): Promise<number>;
- isChangePermitted(callback: AsyncCallback<boolean>): void; - isChangePermitted(callback: AsyncCallback<boolean>): void;
- isChangePermitted(): Promise<boolean>; - isChangePermitted(): Promise<boolean>;
- isOperationAllowed(callback: AsyncCallback<boolean>): void; - isOperationAllowed(callback: AsyncCallback<boolean>): void;
- isOperationAllowed(): Promise<boolean>; - isOperationAllowed(): Promise<boolean>;
- reset(wallpaperType: WallpaperType, callback: AsyncCallback<void>): void; - reset(wallpaperType: WallpaperType, callback: AsyncCallback<void>): void;
- reset(wallpaperType: WallpaperType): Promise<void>; - reset(wallpaperType: WallpaperType): Promise<void>;
- setWallpaper(source: string | image.PixelMap, wallpaperType: WallpaperType, callback: AsyncCallback<void>): void; - setWallpaper(source: string | image.PixelMap, wallpaperType: WallpaperType, callback: AsyncCallback<void>): void;
- setWallpaper(source: string | image.PixelMap, wallpaperType: WallpaperType): Promise<void>; - setWallpaper(source: string | image.PixelMap, wallpaperType: WallpaperType): Promise<void>;
- getFile(wallpaperType: WallpaperType, callback: AsyncCallback<number>): void; - getFile(wallpaperType: WallpaperType, callback: AsyncCallback<number>): void;
- getFile(wallpaperType: WallpaperType): Promise<number>; - getFile(wallpaperType: WallpaperType): Promise<number>;
- getPixelMap(wallpaperType: WallpaperType, callback: AsyncCallback<image.PixelMap>): void; - getPixelMap(wallpaperType: WallpaperType, callback: AsyncCallback<image.PixelMap>): void;
- getPixelMap(wallpaperType: WallpaperType): Promise<image.PixelMap>; - getPixelMap(wallpaperType: WallpaperType): Promise<image.PixelMap>;
壁纸管理服务替代接口如下: 壁纸管理服务替代接口如下:
- getColorsSync(wallpaperType: WallpaperType): Array<RgbaColor>; - getColorsSync(wallpaperType: WallpaperType): Array<RgbaColor>;
- getIdSync(wallpaperType: WallpaperType): number; - getIdSync(wallpaperType: WallpaperType): number;
- getMinHeightSync(): number; - getMinHeightSync(): number;
- getMinWidthSync(): number; - getMinWidthSync(): number;
- isChangeAllowed(): boolean; - isChangeAllowed(): boolean;
- isUserChangeAllowed(): boolean; - isUserChangeAllowed(): boolean;
- restore(wallpaperType: WallpaperType, callback: AsyncCallback<void>): void; - restore(wallpaperType: WallpaperType, callback: AsyncCallback<void>): void;
- restore(wallpaperType: WallpaperType): Promise<void>; - restore(wallpaperType: WallpaperType): Promise<void>;
- setImage(source: string | image.PixelMap, wallpaperType: WallpaperType, callback: AsyncCallback<void>): void; - setImage(source: string | image.PixelMap, wallpaperType: WallpaperType, callback: AsyncCallback<void>): void;
- setImage(source: string | image.PixelMap, wallpaperType: WallpaperType): Promise<void>; - setImage(source: string | image.PixelMap, wallpaperType: WallpaperType): Promise<void>;
- getFileSync(wallpaperType: WallpaperType): number; - getFileSync(wallpaperType: WallpaperType): number;
- getImage(wallpaperType: WallpaperType, callback: AsyncCallback<image.PixelMap>): void; - getImage(wallpaperType: WallpaperType, callback: AsyncCallback<image.PixelMap>): void;
- getImage(wallpaperType: WallpaperType): Promise<image.PixelMap>; - getImage(wallpaperType: WallpaperType): Promise<image.PixelMap>;
以下标记为壁纸管理服务接口变更: 以下标记为壁纸管理服务接口变更:
- on(type: 'colorChange', callback: (colors: Array<RgbaColor>, wallpaperType: WallpaperType) => void): void - on(type: 'colorChange', callback: (colors: Array<RgbaColor>, wallpaperType: WallpaperType) => void): void
- off(type: 'colorChange', callback?: (colors: Array<RgbaColor>, wallpaperType: WallpaperType) => void): void - off(type: 'colorChange', callback?: (colors: Array<RgbaColor>, wallpaperType: WallpaperType) => void): void
以下标记为锁屏管理服务接口废除: 以下标记为锁屏管理服务接口废除:
- isScreenLocked(callback: AsyncCallback<boolean>): void; - isScreenLocked(callback: AsyncCallback<boolean>): void;
- isScreenLocked(): Promise<boolean>; - isScreenLocked(): Promise<boolean>;
- isSecureMode(callback: AsyncCallback<boolean>): void; - isSecureMode(callback: AsyncCallback<boolean>): void;
- isSecureMode(): Promise<boolean>; - isSecureMode(): Promise<boolean>;
- unlockScreen(callback: AsyncCallback<void>): void; - unlockScreen(callback: AsyncCallback<void>): void;
- unlockScreen(): Promise<void>; - unlockScreen(): Promise<void>;
锁屏管理服务替代接口如下: 锁屏管理服务替代接口如下:
- isLocked(): boolean; - isLocked(): boolean;
- isSecure(): boolean; - isSecure(): boolean;
- unlock(callback: AsyncCallback<boolean>): void; - unlock(callback: AsyncCallback<boolean>): void;
- unlock():Promise<boolean>; - unlock():Promise<boolean>;
以下标记为锁屏管理服务接口删除: 以下标记为锁屏管理服务接口删除:
- lockScreen(callback: AsyncCallback<void>): void; - lockScreen(callback: AsyncCallback<void>): void;
- lockScreen(): Promise<void>; - lockScreen(): Promise<void>;
以下标记为锁屏管理服务接口新增: 以下标记为锁屏管理服务接口新增:
- lock(callback: AsyncCallback<boolean>): void; - lock(callback: AsyncCallback<boolean>): void;
- lock():Promise<boolean>; - lock():Promise<boolean>;
以下标记为锁屏管理服务接口变更: 以下标记为锁屏管理服务接口变更:
- onSystemEvent(callback: Callback<SystemEvent>): boolean; - onSystemEvent(callback: Callback<SystemEvent>): boolean;
- sendScreenLockEvent(event: String, parameter: number, callback: AsyncCallback<boolean>): void; - sendScreenLockEvent(event: String, parameter: number, callback: AsyncCallback<boolean>): void;
- sendScreenLockEvent(event: String, parameter: number): Promise<boolean>; - sendScreenLockEvent(event: String, parameter: number): Promise<boolean>;
**壁纸管理服务适配指导** **壁纸管理服务适配指导**
异步接口以getImage为例,示例代码如下: 异步接口以getImage为例,示例代码如下:
```ts ```ts
import pointer from '@ohos.wallpaper'; import pointer from '@ohos.wallpaper';
try { try {
wallpaper.getImage(wallpaper.WallpaperType.WALLPAPER_SYSTEM).then((data) => { wallpaper.getImage(wallpaper.WallpaperType.WALLPAPER_SYSTEM).then((data) => {
console.log(`success to getImage: ${JSON.stringify(data)}`); console.log(`success to getImage: ${JSON.stringify(data)}`);
}).catch((error) => { }).catch((error) => {
console.error(`failed to getImage because: ${JSON.stringify(error)}`); console.error(`failed to getImage because: ${JSON.stringify(error)}`);
}); });
} catch (err) { } catch (err) {
console.error(`failed to getImage because: ${JSON.stringify(err)}`); console.error(`failed to getImage because: ${JSON.stringify(err)}`);
} }
``` ```
同步接口以getFileSync为例,示例代码如下: 同步接口以getFileSync为例,示例代码如下:
```ts ```ts
import pointer from '@ohos.wallpaper'; import pointer from '@ohos.wallpaper';
try { try {
let file = wallpaper.getFileSync(wallpaper.WallpaperType.WALLPAPER_SYSTEM); let file = wallpaper.getFileSync(wallpaper.WallpaperType.WALLPAPER_SYSTEM);
} catch (err) { } catch (err) {
console.error(`failed to getFileSync because: ${err.message}`); console.error(`failed to getFileSync because: ${err.message}`);
} }
``` ```
**锁屏管理服务适配指导** **锁屏管理服务适配指导**
异步接口以lock为例,示例代码如下: 异步接口以lock为例,示例代码如下:
```ts ```ts
import screenLock from '@ohos.screenlock'; import screenLock from '@ohos.screenlock';
try { try {
screenLock.lock((err, data) => { screenLock.lock((err, data) => {
if (err) { if (err) {
console.error(`Failed to lock the screen, because: ${err.message}`); console.error(`Failed to lock the screen, because: ${err.message}`);
return; return;
} }
console.info(`lock the screen successfully. result: ${data}`); console.info(`lock the screen successfully. result: ${data}`);
}); });
} catch (err) { } catch (err) {
console.error(`Failed to lock the screen, because: ${err.message}`); console.error(`Failed to lock the screen, because: ${err.message}`);
} }
``` ```
同步接口以onSystemEvent为例,示例代码如下: 同步接口以onSystemEvent为例,示例代码如下:
```ts ```ts
import screenLock from '@ohos.screenlock'; import screenLock from '@ohos.screenlock';
try { try {
let isSuccess = screenLock.onSystemEvent((event) => { let isSuccess = screenLock.onSystemEvent((event) => {
console.log(`Register the system event which related to screenlock successfully. eventType: ${event.eventType}`) console.log(`Register the system event which related to screenlock successfully. eventType: ${event.eventType}`)
}); });
} catch (err) { } catch (err) {
console.error(`Failed to register the system event which related to screenlock, because: ${err.message}`) console.error(`Failed to register the system event which related to screenlock, because: ${err.message}`)
} }
``` ```
# wantAgent的JS API变更Changelog # wantAgent的JS API变更Changelog
OpenHarmony 3.2.9.1 sp8版本相较于OpenHarmony 3.2.8.1版本,wantAgent的API变更如下
## cl.url.1.trigger类接口变更 ## cl.url.1.trigger类接口变更
trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: Callback<CompleteData>): void ; trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: Callback<CompleteData>): void ;
...@@ -71,7 +69,7 @@ function getWantAgentCallback(err, data) { ...@@ -71,7 +69,7 @@ function getWantAgentCallback(err, data) {
//getUid回调 //getUid回调
function triggerCallback(err, data) { function triggerCallback(err, data) {
if(err) { if(err) {
console.info('getUid failed!' + err.code + err.message); console.info('getUid failed!' + JSON.stringify(err.code) + JSON.stringify(err.message));
} else { } else {
console.info('getUid ok!' + JSON.stringify(data)); console.info('getUid ok!' + JSON.stringify(data));
} }
...@@ -79,12 +77,12 @@ function getWantAgentCallback(err, data) { ...@@ -79,12 +77,12 @@ function getWantAgentCallback(err, data) {
try { try {
WantAgent.trigger(wantAgent, triggerInfo, triggerCallback); WantAgent.trigger(wantAgent, triggerInfo, triggerCallback);
} catch(err) { } catch(err) {
console.info('getUid failed!' + err.code + err.message); console.info('getUid failed!' + JSON.stringify(err.code) + JSON.stringify(err.message));
} }
} }
try{ try{
WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback); WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch(err){ } catch(err){
console.info('getWantAgent failed!' + err.code + err.message); console.info('getWantAgent failed!' + JSON.stringify(err.code) + JSON.stringify(err.message));
} }
``` ```
# web子系统ChangeLog # web子系统ChangeLog
OpenHarmony 3.2.9.1 sp8版本相较于OpenHarmony 3.2.8.1版本,web的API变更如下
## cl.web.1 删除无用错误码 ## cl.web.1 删除无用错误码
web子系统webviewController接口存在变更: web子系统webviewController接口存在变更:
......
# Readme
- [元能力](changelogs-ability.md)
- [帐号](changelogs-account_os_account.md)
- [ArkUI](changelogs-arkui.md)
- [多媒体-相机](changelogs-camera-sync.md)
- [公共基础类库-容器](changelogs-container.md)
- [分布式数据管理](changelogs-distributeddatamgr.md)
- [文件管理](changelogs-filemanagement.md)
- [输入法框架](changelogs-inputmethod-framworks.md)
- [文件管理-媒体库](changelogs-mediaLibrary.md)
- [多媒体](changelogs-multimedia.md)
- [基础通信-NFC](changelogs-nfc.md)
- [事件通知](changelogs-notification.md)
- 位置服务
- [ohos.geoLocationManager](changelogs-ohos-geoLocationManager.md)
- [ohos.geoLocation](changelogs-ohos-geolocation.md)
- [system.geolocation](changelogs-system-geolocation.md)
- [上传下载](changelogs-request.md)
- [资源调度](changelogs-resourceschedule.md)
- [安全](changelogs-security.md)
- [电话服务](changelogs-telephony.md)
- [时间服务](changelogs-time.md)
- [公共基础类库-URL](changelogs-url.md)
- [用户IAM](changelogs-useriam.md)
- [窗口](changelogs-window.md)
# commonlibrary子系统JS API变更Changelog # 公共基础类库子系统JS API变更Changelog
OpenHarmony 3.2.10.1(Mr)版本相较于OpenHarmony 3.2.beta4版本,container子系统的API变更如下
## cl.公共基础类库子系统.1 错误码及信息变更 ## cl.公共基础类库子系统.1 错误码及信息变更
公共基础类库子系统子系统中ArrayList、List、LinkedList、Stack、Queue、Deque、PlainArray、LightWeightMap、LightWeightSet、HashMap、HashSet、TreeMap、TreeSet类的接口抛出的错误码及信息变更: 公共基础类库子系统子系统中ArrayList、List、LinkedList、Stack、Queue、Deque、PlainArray、LightWeightMap、LightWeightSet、HashMap、HashSet、TreeMap、TreeSet类的接口抛出的错误码及信息变更:
......
# 分布式数据管理子系统JS API变更Changelog # 分布式数据管理子系统JS API变更Changelog
OpenHarmony 3.2.10.1(Mr)版本相较于OpenHarmony 3.2.beta4版本,分布式数据管理子系统的API变更如下
## cl.distributeddatamgr.1 接口变更 ## cl.distributeddatamgr.1 接口变更
distributeddatamgr子系统kv_store组件接口存在变更: distributeddatamgr子系统kv_store组件接口存在变更:
......
# 公共通信子系统NFC JS API变更Changelog # 公共通信子系统NFC JS API变更Changelog
OpenHarmony 3.2.10.2(Mr)版本相较于OpenHarmony 3.2.beta4版本,分布式数据管理子系统的API变更如下
## cl.nfc.1 接口变更 ## cl.nfc.1 接口变更
NFC部分API6到API8部分JS接口不支持抛出错误码,需要删除废弃,然后使用新的API9替换。 NFC部分API6到API8部分JS接口不支持抛出错误码,需要删除废弃,然后使用新的API9替换。
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
## cl.notification.1 删除标记为废弃的API9接口 ## cl.notification.1 删除标记为废弃的API9接口
[事件通知异常处理整改](../OpenHarmony_3.2.8.3/changelogs-notification.md)将部分API9接口标记为了废弃,根据OpenHarmony接口规范,需要删除标记为废弃的API9接口。 事件通知异常处理整改将部分API9接口标记为了废弃,根据OpenHarmony接口规范,需要删除标记为废弃的API9接口。
**变更影响** **变更影响**
......
# 公共基础类库子系统JS API变更Changelog # 公共基础类库子系统JS API变更Changelog
OpenHarmony 3.2.10.1(Mr)版本相较于OpenHarmony 3.2.beta4版本,url子系统的API变更如下
## cl.commonlibrary.1.URLParams类接口变更 ## cl.commonlibrary.1.URLParams类接口变更
公共基础类库子系统url模块URLParams类构造函数存在变更: 公共基础类库子系统url模块URLParams类构造函数存在变更:
......
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册