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
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦