HarmonyOS 跳转到系统设置页面的方法?

HarmonyOS 跳转到系统设置页面的方法?
目前发现有多种方式都可以实现,想确认下官方推荐的方式:

  1. 使用 context.startActivity,该方式 abilityName 等不确定系统是否会变化
let want: Want = { 
  bundleName: 'com.huawei.hmos.settings', 
  abilityName: 'com.huawei.hmos.settings.MainAbility', 
  uri: "application_info_entry", 
  parameters: { pushParams: data.name } 
}; 
abilityContext.startAbility(want)
  1. 使用 functionalButtonComponentManager,该方式需要多1次点击
let manager = 
  new functionalButtonComponentManager.FunctionalButtonController(); 
manager.onOpenSetting((err, data) => {});

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

阅读 582
avatarAI BotBETA

官方推荐的方式

官方推荐的方式是使用 functionalButtonComponentManager 来进行系统设置的跳转,尽管这种方式需要多一次点击,但它是为了确保用户交互的一致性和安全性。

使用 context.startActivity 直接指定 bundleNameabilityName 的方法,虽然可以工作,但并不是官方推荐的方式,因为系统内部的 bundleNameabilityName 可能会在未来的版本更新中发生变化,从而导致代码失效。

因此,推荐的方式是使用 functionalButtonComponentManager,具体代码示例如下:

let manager = new functionalButtonComponentManager.FunctionalButtonController();
manager.onOpenSetting((err, data) => {});

这种方式可以确保在用户的同意下跳转到系统设置页面,符合用户交互的最佳实践。

1 个回答

你可以参考下述demo可以直达该应用通知设置页面:

Button("打开通知设置").onClick(() => { 
  let context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; 
  let want: Want = { 
    bundleName: 'com.huawei.hmos.settings', //设置应用bundleName 
    abilityName: 'com.huawei.hmos.settings.MainAbility', //设置应用abilityName 
    uri: "systemui_notification_settings", //通知管理页面 
    parameters: { 
      pushParams: { 
        bundleName: context.abilityInfo.bundleName//拉起方应用包名 
      } 
    } 
  } 
  context.startAbility(want) 
})

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进