主题框架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}`)
}