harmony 鸿蒙web子系统ChangeLog
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
- 变更前:
 
  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
- 变更前:
 
  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): 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 })
    }
  }
}
你可能感兴趣的鸿蒙文章
- 所属分类: 后端技术
 - 本文标签:
 
热门推荐
- 
                        2、 - 优质文章
 - 
                        3、 gate.io
 - 
                        7、 openharmony
 - 
                        9、 golang