harmony 鸿蒙web子系统ChangeLog

  • 2023-02-17
  • 浏览 (303)

web子系统ChangeLog

OpenHarmony 3.2.10.7 版本相较于OpenHarmony 之前的版本,web的API变更如下。

cl.web.1 HitTestTypeV9命名变更

枚举类HitTestTypeV9由于命名规范问题,名称变更为WebHitTestType。

变更影响

枚举类HitTestTypeV9,以及使用HitTestTypeV9作为参数或返回值的接口,在3.2.10.7版本及后续版本中无法继续正常使用。

关键的接口/组件变更

  • 涉及接口

enum HitTestTypeV9

  • 变更前:
  enum HitTestTypeV9
  • 变更后:
  enum WebHitTestType

适配指导

请使用WebHitTestType替换HitTestTypeV9。

cl.web.2 HeaderV9命名变更

结构体HeaderV9由于命名规范问题,名称变更为WebHeader。

变更影响

结构体HeaderV9,以及使用HeaderV9作为参数或返回值的接口,在3.2.10.7版本及后续版本中无法继续正常使用。

关键的接口/组件变更

  • 涉及接口

interface HeaderV9

  • 变更前:
  interface HeaderV9
  • 变更后:
  interface WebHeader

适配指导

请使用WebHeader替换HeaderV9。

cl.web.3 HitTestValue结构体成员类型变更

结构体HitTestValue中的成员变量HitTestTypeV9由于命名规范问题,名称变更为WebHitTestType。

变更影响

结构体HitTestValue,以及使用HitTestValue作为参数或返回值的接口,在3.2.10.7版本及后续版本中无法继续正常使用。

关键的接口/组件变更

  • 涉及接口

interface HitTestValue

  • 变更前:
  interface HitTestValue {

    /**
      * Get the hit test type.
      *
      * @since 9
      */
    type: HitTestTypeV9;

    /**
      * Get the hit test extra data.
      *
      * @since 9
      */
    extra: string;
  }
  • 变更后:
  interface HitTestValue {

    /**
      * Get the hit test type.
      *
      * @since 9
      */
    type: WebHitTestType;

    /**
      * Get the hit test extra data.
      *
      * @since 9
      */
    extra: string;
  }

适配指导

请使用WebHitTestType替换HitTestTypeV9。

cl.web.4 loadUrl参数类型变更

loadUrl接口中的参数headers,由于其类型的命名规范问题,类型变更为WebHeader。

变更影响

loadUrl接口若使用了headers参数,则在3.2.10.7版本及后续版本中无法继续正常使用。

关键的接口/组件变更

  • 涉及接口

loadUrl(url: string|Resource, headers?: Array): void

  • 变更前:
  loadUrl(url: string|Resource, headers?: Array<HeaderV9>): void
  • 变更后:
  loadUrl(url: string|Resource, headers?: Array<WebHeader>): void

适配指导

在loadUrl中设置headers参数时,请使用WebHeader类型替换HeaderV9类型。

cl.web.5 getHitTest返回值类型变更

getHitTest接口中的返回值,由于其类型的命名规范问题,变更为WebHitTest。

变更影响

getHitTest接口,在3.2.10.7版本及后续版本中无法继续正常使用。

关键的接口/组件变更

  • 涉及接口

getHitTest(): HitTestTypeV9

  • 变更前:
  getHitTest(): HitTestTypeV9
  • 变更后:
  getHitTest(): WebHitTestType

适配指导

在使用getHitTest接口的返回值时,请使用WebHitTestType类型替换HitTestTypeV9类型。

cl.web.6 WebMessagePort类迁移

WebMessagePort类迁移至@ohos.web.webview.d.ts,并新增错误码抛出。

变更影响

基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现该类下接口支持错误码处理,需注意错误码处理的使用。

关键的接口/组件变更

  • 涉及接口

postMessageEvent(message: WebMessageEvent): void; onMessageEvent(callback: (result: string) => void): void;

  • 变更前:
  postMessageEvent(message: WebMessageEvent): void;
  onMessageEvent(callback: (result: string) => void): void;
  • 变更后:
  postMessageEvent(message: WebMessage): void;
  onMessageEvent(callback: (result: WebMessage) => void): void;

适配指导

原WebMessagePort类不需要import,现WebMessagePort类使用的是@ohos.web.webview,以下方式import:

  import web_webview from '@ohos.web.webview';

cl.web.7 HitTestValue类迁移

HitTestValue类迁移至@ohos.web.webview.d.ts,HitTestValue类变更为接口,getType,getExtra变更为属性。

变更影响

基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。

关键的接口/组件变更

  • 涉及接口

getType(): HitTestType; getExtra(): string;

  • 变更前:
  getType(): HitTestType;
  getExtra(): string;
  • 变更后:
  type: WebHitTestType;
  extra: string;

适配指导

原HitTestValue类不需要import,现HitTestValue类使用的是@ohos.web.webview,以下方式import:

  import web_webview from '@ohos.web.webview';

cl.web.8 WebCookie类下api9接口迁移

WebCookie类下api9接口迁移,WebCookie类下api9接口迁移到web.webview.webview.WebCookieManager。 并新增接口错误码抛出。

变更影响

基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现该类下接口支持错误码处理,需注意错误码处理的使用。 该类方法变为静态方法。

关键的接口/组件变更

  • 涉及接口

isCookieAllowed(): boolean; isThirdPartyCookieAllowed(): boolean; putAcceptCookieEnabled(accept: boolean): void; putAcceptThirdPartyCookieEnabled(accept: boolean): void; setCookie(url: string, value: string): boolean; saveCookieSync(): boolean; getCookie(url: string): string; existCookie(): boolean; deleteEntireCookie(): void; deleteSessionCookie(): void;

  • 变更前:
  isCookieAllowed(): boolean;
  isThirdPartyCookieAllowed(): boolean;
  putAcceptCookieEnabled(accept: boolean): void;
  putAcceptThirdPartyCookieEnabled(accept: boolean): void;
  setCookie(url: string, value: string): boolean;
  saveCookieSync(): boolean;
  getCookie(url: string): string;
  existCookie(): boolean;
  deleteEntireCookie(): void;
  deleteSessionCookie(): void;
  • 变更后:
  static isCookieAllowed(): boolean;
  static isThirdPartyCookieAllowed(): boolean;
  static putAcceptCookieEnabled(accept: boolean): void;
  static putAcceptThirdPartyCookieEnabled(accept: boolean): void;
  static setCookie(url: string, value: string): void;
  static saveCookieAsync(): Promise<void>;
  static saveCookieAsync(callback: AsyncCallback<void>): void;
  static getCookie(url: string): string;
  static existCookie(): boolean;
  static deleteEntireCookie(): void;
  static deleteSessionCookie(): void;

适配指导

原WebCookie类不需要import,现WebCookieManager使用的是@ohos.web.webview,以下方式import:

  import web_webview from '@ohos.web.webview';

cl.web.9 WebController类下api9接口迁移

WebController类下api9接口迁移至web.webview.webview.WebviewController,并新增接口错误码抛出。

变更影响

基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现该类下接口支持错误码处理,需注意错误码处理的使用。 getDefaultUserAgent接口更名为getUserAgent。

关键的接口/组件变更

  • 涉及接口

zoomIn(): boolean; zoomOut(): boolean; createWebMessagePorts(): Array; postMessage(options: { message: WebMessageEvent, uri: string}): void; getHitTestValue(): HitTestValue; getWebId(): number; getDefaultUserAgent(): string; getTitle(): string; getPageHeight(): number; backOrForward(step: number): void; searchAllAsync(searchString: string): void; clearMatches(): void; searchNext(forward: boolean): void; clearSslCache(): void; clearClientAuthenticationCache(): void; getUrl(): string;

  • 变更前:
  zoomIn(): boolean;
  zoomOut(): boolean;
  createWebMessagePorts(): Array<WebMessagePort>;
  postMessage(options: { message: WebMessageEvent, uri: string}): void;
  getHitTestValue(): HitTestValue;
  getWebId(): number;
  getDefaultUserAgent(): string;
  getTitle(): string;
  getPageHeight(): number;
  backOrForward(step: number): void;
  searchAllAsync(searchString: string): void;
  clearMatches(): void;
  searchNext(forward: boolean): void;
  clearSslCache(): void;
  clearClientAuthenticationCache(): void;
  getUrl(): string;
  • 变更后:
  zoomIn(): void;
  zoomOut(): void;
  createWebMessagePorts(): Array<WebMessagePort>;
  postMessage(name: string, ports: Array<WebMessagePort>, uri: string): void;
  getHitTestValue(): HitTestValue;
  getWebId(): number;
  getUserAgent(): string;
  getTitle(): string;
  getPageHeight(): number;
  backOrForward(step: number): void;
  searchAllAsync(searchString: string): void;
  clearMatches(): void;
  searchNext(forward: boolean): void;
  clearSslCache(): void;
  clearClientAuthenticationCache(): void;
  getUrl(): string;

适配指导

原WebController类不需要import,现WebviewController类使用的是@ohos.web.webview,以下方式import:

  import web_webview from '@ohos.web.webview';

cl.web.10 WebAsyncController类迁移

WebAsyncController类下接口迁移至web.webview.webview.WebviewController,并新增接口错误码抛出。

变更影响

基于此前版本开发的应用,需注意错误码处理的使用。

关键的接口/组件变更

  • 涉及接口

storeWebArchive(baseName: string, autoName: boolean): Promise; storeWebArchive(baseName: string, autoName: boolean, callback : AsyncCallback): void;

  • 变更前:
  storeWebArchive(baseName: string, autoName: boolean): Promise<string>;
  storeWebArchive(baseName: string, autoName: boolean, callback : AsyncCallback<string>): void;
  • 变更后:
  storeWebArchive(baseName: string, autoName: boolean): Promise<string>;
  storeWebArchive(baseName: string, autoName: boolean, callback : AsyncCallback<string>): void;

适配指导

使用示例:

  // xxx.ets
  import web_webview from '@ohos.web.webview'

  @Entry
  @Component
  struct WebComponent {
    controller: web_webview.WebviewController = new web_webview.WebviewController();

    build() {
      Column() {
        Button('saveWebArchive')
          .onClick(() => {
            try {
              this.controller.storeWebArchive("/data/storage/el2/base/", true, (error, filename) => {
                if (error) {
                  console.info(`save web archive error: ` + JSON.stringify(error))
                  return;
                }
                if (filename != null) {
                  console.info(`save web archive success: ${filename}`)
                }
              });
            } catch (error) {
              console.error(`ErrorCode: ${error.code},  Message: ${error.message}`);
            }
          })
        Web({ src: 'www.example.com', controller: this.controller })
      }
    }
  }

cl.web.11 删除webDebuggingAccess接口

该接口定义不合理,该属性对所有web实例生效的,属于全局配置。用本次新增的接口setWebDebuggingAccess替换。

变更影响

该接口删除无法再使用,请使用新增的接口setWebDebuggingAccess替换。

关键的接口/组件变更

|类名|接口类型|接口声明|变更类型| | –|–|–|–| |WebAttribute|method|webDebugggingAccess(webDebugggingAccess: boolean): WebAttribute|删除|

适配指导

该接口删除无法再使用,请使用新增的接口setWebDebuggingAccess替换。

cl.web.12 新增setWebDebuggingAccess接口

WebviewController提供静态方法来设置调试模式开关,该设置对所有web实例生效。

变更影响

原有webDebugggingAccess属性定义不合理,因此新增该静态接口来设置调试模式开关。应用侧需要使用该接口来打开调试模式开关。

关键的接口/组件变更

|类名|接口类型|接口声明|变更类型| | –|–|–|–| |webview.WebviewController|method|static setWebDebugggingAccess(webDebugggingAccess: boolean): void|新增|

适配指导

以打开调试开关为例,示例代码如下:

// 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 })
    }
  }
}

你可能感兴趣的鸿蒙文章

harmony 鸿蒙资源调度子系统ChangeLog

harmony 鸿蒙电话子系统ChangeLog

harmony 鸿蒙元能力子系统JS API变更Changelog

harmony 鸿蒙arkui子系统ChangeLog

harmony 鸿蒙包管理子系统ChangeLog

harmony 鸿蒙util系统JS API变更Changelog

0  赞