HarmonyOS 鸿蒙Next web加载的本地资源刷新问题:当src上拼接的token等参数变化时,web组件如何刷新
HarmonyOS 鸿蒙Next web加载的本地资源刷新问题:当src上拼接的token等参数变化时,web组件如何刷新
关键代码如下:
Web({
src: www.xxx.xom?access_token=${<span class="hljs-keyword">this</span>.accessToken}&height=${<span class="hljs-keyword">this</span>.statusBarHeight}
,
controller: this.webViewController
})
.onInterceptRequest(()=>{
// //拦截url,当Web组件加载url之前触发该回调,并对file协议或者resource协议的资源进行替换为https或者http协议资源
})
.javaScriptProxy({
object: this.appFuncObj, //接收 h5 传入的参数
name: “harmonyOS”, //与h5 约定成 name 为 harmonyOS
methodList: [“app_function”], // h5 调用 app_function方法
controller: this.webViewController
})
web页面是tabbar的一个页签,第二次切换到这个web页签时,web的aboutToAppear不会执行(web页面不会重新加载)这个情况下有什么办法可以解决url拼接的参数更新时web页随之更新呢?
1、web 加载的vue项目,因某些业务需求,需要更新token信息,当token更新后,web加载的src中拼接的token还是旧的值。
2、导致web页面没有刷新。
更多关于HarmonyOS 鸿蒙Next web加载的本地资源刷新问题:当src上拼接的token等参数变化时,web组件如何刷新的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
您用[@state](/user/state)修饰下src,
[@state](/user/state) webSrc:string = `fund-sit.test.cn/index.html#/?access_token=${this.accessToken}&height=${this.statusBarHeight}`
然后src:this.webSrc
您这样写尝试下呢
尝试使用下onVisibleAreaChange回调, 通过设置ratios为[0.0, 1.0],实现当组件完全显示或完全消失在屏幕中时触发回调,回调中修改src呢?
更多关于HarmonyOS 鸿蒙Next web加载的本地资源刷新问题:当src上拼接的token等参数变化时,web组件如何刷新的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,处理web加载的本地资源刷新问题,尤其是当src
属性上的拼接参数(如token)变化时,web组件的刷新机制依赖于资源的有效重载。你可以通过以下方式实现:
-
动态URL处理:确保每次参数变化时,生成的URL是唯一的,从而触发资源的重新加载。鸿蒙系统Web组件对URL的敏感性较高,新URL会视为新资源加载。
-
强制刷新方法:在参数变化后,可通过编程方式重新设定web组件的
src
属性,并立即清除并重新设置,这有时能强制刷新内容。例如,使用element.setAttribute('src', newUrl);
后再进行element.removeAttribute('src');
,紧接着重新设置。 -
状态管理:在应用中维护一个状态管理逻辑,当检测到token变化时,主动触发web组件的重新加载逻辑。
-
使用JavaScript接口:如果可能,利用JavaScript与鸿蒙系统的接口,监听URL参数变化并触发页面重载。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html