HarmonyOS 鸿蒙Next中嵌入web页面后点击进入系统设置等再返回到当前页面执行代码改用哪一部分监听事件

HarmonyOS 鸿蒙Next中嵌入web页面后点击进入系统设置等再返回到当前页面执行代码改用哪一部分监听事件 在当前web页面调用了jsbridge 跳转到系统的设置,设置完成或者返回后,返回到了web页面,这时候需要触发指定事件来更新一些状态,在这种情况下该怎么操作来触发这个事件?

3 回复

可以通过startAbilityForResult拉起,并在callback中通知web页面

startAbilityForResult(parameter: StartAbilityParameter):

启动Ability,并在该Ability被销毁时返回执行结果。

参考链接:UIAbility组件间交互 – startAbilityForResult

更多关于HarmonyOS 鸿蒙Next中嵌入web页面后点击进入系统设置等再返回到当前页面执行代码改用哪一部分监听事件的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,嵌入Web页面后,若需在返回当前页面时执行代码,可使用onPageShow生命周期回调。该回调在页面显示时触发,适用于处理返回页面后的逻辑。具体实现可在页面的onPageShow方法中编写相关代码。

在HarmonyOS Next中处理Web页面返回时的状态更新,可以通过以下方式实现:

  1. 使用页面生命周期监听: 在Web组件中监听onShow()事件,当用户从系统设置返回时会触发该回调:
// ArkTS侧
webviewController.setOnShowListener(() => {
  // 调用JSBridge通知Web页面更新状态
  webviewController.runJavaScript("window.dispatchEvent(new Event('pageResume'))");
});

// Web侧
window.addEventListener('pageResume', () => {
  // 执行状态更新逻辑
  updateStatus();
});
  1. 使用JSBridge回调机制: 在跳转系统设置前注册回调函数:
// Web侧调用原生跳转
HarmonyJSBridge.call('openSystemSettings', {
  success: function() {
    // 返回后的回调处理
    updateStatus();
  }
});
  1. 对于单页面应用(SPA),可以在WebView的onPageEnd事件中处理:
webviewController.setOnPageEndListener(() => {
  // 页面重新加载完成时执行
});

注意:确保在跳转系统设置前保存必要的状态数据,因为WebView可能会在后台被销毁。

回到顶部