可以通过设置全局来处理解决不依赖具体web页面,参照如下demo:import web_webview from '@ohos.web.webview'; import business_error from '@ohos.base'; @Entry @Component struct Index5 { @State message: string = 'Hello World'; webcontroller: web_webview.WebviewController = new web_webview.WebviewController(); build() { Row() { Column() { //某一个web组件赋值给全局 Web({ src: 'https://www.huawei.com', controller: this.webcontroller }) .onControllerAttached(() => { GlobalContext.getContext().setObject('webcontroller', this.webcontroller) }) .height(200) .width('100%') //清除缓存 Button('removeCache') .onClick(() => { try { let webcontroller = GlobalContext.getContext().getObject('webcontroller') as web_webview.WebviewController webcontroller.removeCache(true); } catch (error) { let e: business_error.BusinessError = error as business_error.BusinessError; console.error(`ErrorCode: ${e.code}, Message: ${e.message}`); } }) } .width('100%') } .height('100%') } } export class GlobalContext { private constructor() { } private static instance: GlobalContext; private _objects = new Map<string, Object>(); public static getContext(): GlobalContext { if (!GlobalContext.instance) { GlobalContext.instance = new GlobalContext(); } return GlobalContext.instance; } getObject(value: string): Object | undefined { return this._objects.get(value); } setObject(key: string, objectClass: Object): void { this._objects.set(key, objectClass); } }
可以通过设置全局来处理解决不依赖具体web页面,参照如下demo: