HarmonyOS 鸿蒙Next Web组件内跳转新页面并回退后页面重新加载
HarmonyOS 鸿蒙Next Web组件内跳转新页面并回退后页面重新加载
要如何设置使从新页面回退到原页面时原页面不会重新加载?
这个h5页面是自己的可以修改代码的吗?如果可以,那么可以利用registerJavaScriptProxy注册jsbridge,h5跳转的事件改成通知鸿蒙Web组件,鸿蒙Web组件收到通知后手动打开新的page加载新的web。
可以改代码。手动打开新的page页面指的是什么呢,用controller.loadUrl加载url还是用路由跳转新建一个web组件?
对,打开新的有web的组件,我这边现在就是这么做的。 router.pushUrl({ url: ‘pages/Web’, params: { launchWebview: url } }, router.RouterMode.Standard)
HarmonyOS的分布式技术让我实现了跨设备的无缝协作,工作效率翻倍。
这种是可以实现,也不需要JSBridge,在加载url的时候拦截一下跳新页面就行;但是问题是web只是一个组件,都是包在业务的容器里使用的,每个业务都有自己的容器,这样在点击url时不知道要跳到哪个容器,要用这种方式改造会很大且麻烦,不知道有没有更方便的方案,就在原容器里就能实现
在HarmonyOS鸿蒙Next中,Web组件内跳转新页面并回退后页面重新加载的问题,通常是由于页面跳转逻辑未正确处理浏览历史记录导致的。
要解决这个问题,可以考虑以下方法:
- 使用router.pushUrl()进行页面跳转:在Web组件中,使用router.pushUrl()方法跳转到新页面时,新页面会被压入页面栈中,而不会替换当前页面。这样,当用户回退时,可以返回到原页面且原页面状态得以保留。
- 拦截URL加载:在Web组件中,可以通过监听URL加载事件并拦截特定格式的URL来实现自定义页面跳转逻辑。例如,可以拦截以“native://”开头的URL,并通过Router模块跳转到应用内的指定页面。
- 确保页面状态管理:在Web组件中,应确保页面状态得到妥善管理。可以使用组件的状态管理机制(如React的状态钩子或Vue的响应式数据)来保存和恢复页面状态。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。