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