主题框架changeLog
cl.theme.1 API9接口支持异常处理
下列模块内部接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。在API9进行变更。
-
壁纸管理服务:@ohos.wallpaper.d.ts
-
锁屏管理服务:@ohos.screenLock.d.ts
以上模块中的接口变更为: 同步接口:通过抛出异常的方式返回错误信息。 异步接口:参数检查错误同步抛出,业务逻辑错误通过AsyncCallback或Promise的error对象抛出。
变更影响
基于此前版本开发的应用,需适配接口的错误信息返回方式,否则会影响原有业务逻辑。
关键接口/组件变更
以下标记为壁纸管理服务接口废除:
- getColors(wallpaperType: WallpaperType, callback: AsyncCallback<Array
>): void; - getColors(wallpaperType: WallpaperType): Promise<Array
>; - getId(wallpaperType: WallpaperType, callback: AsyncCallback
): void; - getId(wallpaperType: WallpaperType): Promise
; - getMinHeight(callback: AsyncCallback
): void; - getMinHeight(): Promise
; - getMinWidth(callback: AsyncCallback
): void; - getMinWidth(): Promise
; - isChangePermitted(callback: AsyncCallback
): void; - isChangePermitted(): Promise
; - isOperationAllowed(callback: AsyncCallback
): void; - isOperationAllowed(): Promise
; - reset(wallpaperType: WallpaperType, callback: AsyncCallback
): void; - reset(wallpaperType: WallpaperType): Promise
; - setWallpaper(source: string | image.PixelMap, wallpaperType: WallpaperType, callback: AsyncCallback
): void; - setWallpaper(source: string | image.PixelMap, wallpaperType: WallpaperType): Promise
; - getFile(wallpaperType: WallpaperType, callback: AsyncCallback
): void; - getFile(wallpaperType: WallpaperType): Promise
; - getPixelMap(wallpaperType: WallpaperType, callback: AsyncCallback<image.PixelMap>): void;
- getPixelMap(wallpaperType: WallpaperType): Promise<image.PixelMap>;
壁纸管理服务替代接口如下:
- getColorsSync(wallpaperType: WallpaperType): Array
; - getIdSync(wallpaperType: WallpaperType): number;
- getMinHeightSync(): number;
- getMinWidthSync(): number;
- isChangeAllowed(): boolean;
- isUserChangeAllowed(): boolean;
- restore(wallpaperType: WallpaperType, callback: AsyncCallback
): void; - restore(wallpaperType: WallpaperType): Promise
; - setImage(source: string | image.PixelMap, wallpaperType: WallpaperType, callback: AsyncCallback
): void; - setImage(source: string | image.PixelMap, wallpaperType: WallpaperType): Promise
; - getFileSync(wallpaperType: WallpaperType): number;
- getImage(wallpaperType: WallpaperType, callback: AsyncCallback<image.PixelMap>): void;
- getImage(wallpaperType: WallpaperType): Promise<image.PixelMap>;
以下标记为壁纸管理服务接口变更:
- on(type: 'colorChange', callback: (colors: Array
, wallpaperType: WallpaperType) => void): void - off(type: 'colorChange', callback?: (colors: Array
, wallpaperType: WallpaperType) => void): void
以下标记为锁屏管理服务接口废除:
- isScreenLocked(callback: AsyncCallback
): void; - isScreenLocked(): Promise
; - isSecureMode(callback: AsyncCallback
): void; - isSecureMode(): Promise
; - unlockScreen(callback: AsyncCallback
): void; - unlockScreen(): Promise
;
锁屏管理服务替代接口如下:
- isLocked(): boolean;
- isSecure(): boolean;
- unlock(callback: AsyncCallback
): void; - unlock():Promise
;
以下标记为锁屏管理服务接口删除:
- lockScreen(callback: AsyncCallback
): void; - lockScreen(): Promise
;
以下标记为锁屏管理服务接口新增:
- lock(callback: AsyncCallback
): void; - lock():Promise
;
以下标记为锁屏管理服务接口变更:
- onSystemEvent(callback: Callback
): boolean; - sendScreenLockEvent(event: String, parameter: number, callback: AsyncCallback
): void; - sendScreenLockEvent(event: String, parameter: number): Promise
;
壁纸管理服务适配指导
异步接口以getImage为例,示例代码如下:
import pointer from '@ohos.wallpaper';
try {
wallpaper.getImage(wallpaper.WallpaperType.WALLPAPER_SYSTEM).then((data) => {
console.log(`success to getImage: ${JSON.stringify(data)}`);
}).catch((error) => {
console.error(`failed to getImage because: ${JSON.stringify(error)}`);
});
} catch (err) {
console.error(`failed to getImage because: ${JSON.stringify(err)}`);
}
同步接口以getFileSync为例,示例代码如下:
import pointer from '@ohos.wallpaper';
try {
let file = wallpaper.getFileSync(wallpaper.WallpaperType.WALLPAPER_SYSTEM);
} catch (err) {
console.error(`failed to getFileSync because: ${err.message}`);
}
锁屏管理服务适配指导
异步接口以lock为例,示例代码如下:
import screenLock from '@ohos.screenlock';
try {
screenLock.lock((err, data) => {
if (err) {
console.error(`Failed to lock the screen, because: ${err.message}`);
return;
}
console.info(`lock the screen successfully. result: ${data}`);
});
} catch (err) {
console.error(`Failed to lock the screen, because: ${err.message}`);
}
同步接口以onSystemEvent为例,示例代码如下:
import screenLock from '@ohos.screenlock';
try {
let isSuccess = screenLock.onSystemEvent((event) => {
console.log(`Register the system event which related to screenlock successfully. eventType: ${event.eventType}`)
});
} catch (err) {
console.error(`Failed to register the system event which related to screenlock, because: ${err.message}`)
}