1# ArkUI Web组件(ArkTS)开发常见问题 2 3## Web组件domStorageAccess属性设置 4 5适用于:OpenHarmony SDK 3.2.6.5版本,API9 Stage模型 6 7设置是否开启文档对象模型存储接口(DOM Storage API)权限,默认未开启,控制web网页中localStorage的使用,对sessionStorage未做控制 8 9 10## Web组件加载的html页面内如何检测网络状态 11 12适用于:OpenHarmony SDK 3.2.7.5版本,API9 Stage模型 13 141. 配置应用权限:ohos.permission.INTERNET 、 ohos.permission.GET_NETWORK_INFO 15 162. html中通过window.navigator.onLine获取网络状态 17 18## Web组件加载h5页面,首次加载无法设置拼接UserAgent参数 19 20适用于:OpenHarmony SDK 3.2.6.5版本,API9 Stage模型 21 22默认UserAgent通过WebController获取。一个WebController对象只能控制一个Web组件,且必须在Web组件和WebController绑定后,才能调用WebController上的方法,因此在初次加载前设置默认UserAgent + 自定义字符串拼接,可采用此方式: 23 241. 使用\@State定义初始userAgent,绑定到Web组件; 25 262. 在web组件的onUrlLoadIntercept回调中,通过WebController获取默认userAgent,修改Web组件绑定的userAgent。 27 参考代码如下: 28 29 30 ``` 31 @Entry 32 @Component 33 struct Index { 34 private controller: WebController = new WebController() 35 @State userAgentPa: string = '' 36 build() { 37 Row() { 38 Column() { 39 Web({ src: 'www.example.com', controller: this.controller }) 40 .width('100%') 41 .userAgent(this.userAgentPa) 42 .onUrlLoadIntercept((event) => { 43 let userAgent = this.controller.getDefaultUserAgent(); 44 this.userAgentPa = userAgent + ' 111111111' 45 console.log("userAgent onUrlLoadIntercept: " + userAgent); 46 return false; 47 }) 48 } 49 .width('100%').alignItems(HorizontalAlign.Start).backgroundColor(Color.Green) 50 } 51 .height('100%') 52 } 53 } 54 ``` 55 56## 加载Lottie动画的逻辑应该写在onAppear函数中还是应该写在onReady函数中 57 58适用于:OpenHarmony SDK 3.2.6.5版本,API9 Stage模型 59 60onAppear方法只是定位完Canvas的位置,onReady方法才是测量完成,加载动画的逻辑应该写在onReady函数中。 61 62## 调用deleteJavaScriptRegister后是否需要调用refresh接口 63 64适用于:所有版本 65 66不需要。 67 68## 页面如何传递数据给Web组件 69 70适用于:OpenHarmony SDK 3.2.7.5版本,API9 Stage模型 71 721. 使用WebController创建两个消息端口。 73 742. 将消息端口1发送到HTML侧,由HTML侧保存并使用。 75 763. 将消息端口0在应用侧注册回调事件。 77 784. 使用应用侧的端口0给HTML侧消息端口1发送消息。 79 80使用参考:[Web组件](../reference/arkui-ts/ts-basic-components-web.md#postmessage9) 81