• Lv3
    粉丝0

积分2 / 贡献0

提问1答案被采纳0文章0

作者动态

    OpenHarmony:如何查询想要打开的设置页面的uri

    我心永恒 显示全部楼层 发表于 2025-4-21 21:33:00

    以下是根据你提供的要求撰写的求助帖子模板,内容需要根据实际开发情况补充细节:


    【问题描述】

    1. 问题现象和背景

    在开发OpenHarmony应用时,我需要通过 startAbility跳转到系统设置中的特定子页面(如网络设置、声音设置等)。但尝试了多个URI均无法正确跳转到目标页面,甚至出现跳转失败或页面不匹配的情况。由于官方文档未明确列出所有设置页面对应的URI,导致功能开发受阻。

    2. 相关代码

      /**
       * 打开显示与亮度设置页面
       * @param context UIAbilityContext实例
       */
      static openDisplaySettings(context: common.UIAbilityContext): void {
        try {
          const want: Want = {
            bundleName: 'com.ohos.settings',
            abilityName: 'com.ohos.settings.MainAbility',
            uri: 'display_settings'
          }
    
          context.startAbility(want)
            .then(() => {
              myLog.debug('SystemSettingsUtils', '成功打开显示设置页面');
            })
            .catch((err: BusinessError) => {
              myLog.error('SystemSettingsUtils', `打开显示设置失败: ${JSON.stringify(err)}`);
              ToastUtil.showToast('无法打开显示设置,请手动操作');
            });
        } catch (error) {
          myLog.error('SystemSettingsUtils', `打开显示设置异常: ${error}`);
          ToastUtil.showToast('无法打开显示设置,请手动操作');
        }
      }
    } 

    3. 运行结果与错误

    • 预期结果:正常跳转到系统网络设置页面。
    • 实际结果
      • 跳转至默认设置主页,而非目标子页面。
      • 错误日志:"Error code: 202, message: URI is invalid."
      • (可选:补充错误截图路径或文字描述崩溃现象)

    4. 尝试过的解决方法

    1. 查阅官方文档:参考系统能力接口文档,但未找到完整的URI列表。
    2. 搜索社区案例:尝试使用 "settings.wireless""settings.sound"等常见URI,部分跳转失败,部分页面不匹配。
    3. 检查权限配置:已在 config.json中添加权限声明,确认非权限问题导致。

    5. 期望结果

    获取系统设置子页面(如网络设置、应用管理)的正确URI格式,并实现精准跳转。


    【运行环境】

    请根据实际情况补充(示例):

    • 硬件:RK3568开发板
    • ROM版本:OpenHarmony 5.0.0Release
    • DevEvoStudio版本:5.0.2
    • SDK版本:API 12

    补充说明

    1. 需要明确的问题
      • 是否有官方途径查询所有系统设置页面的URI?
      • 跳转系统设置是否需要特殊权限?
    2. 附加信息
      • (可选)提供您验证成功的URI案例或相关日志片段。

    注意事项

    • 发布前请替换模板中的占位内容(如硬件型号、版本号)。
    • 如果是崩溃问题,建议附加完整的错误堆栈日志。
    • 可附上 config.json中的 abilitiesrequestPermissions配置片段。

    您尚未登录,无法参与评论,登录后可以:
    参与开源共建问题交流
    认同或收藏高质量问答
    获取积分成为开源共建先驱

    精彩评论1

    onefan

    沙发 发表于 2025-4-22 09:38:28
    uri需要带上pages/
    如:uri: 'pages/wifi'
    'com.ohos.settings', 'com.ohos.settings.MainAbility', { uri: 'pages/wifi' })

    需要对应的列表需要查询https://gitee.com/openharmony/applications_settings的代码。
    音量:    "pages/volumeControl",
    wifi: "pages/wifi",
    关于设备:"pages/aboutDevice",
    移动数据: "pages/mobileNetwork",
    等等。。。

    Copyright   ©2025  OpenHarmony开发者论坛  京ICP备2020036654号-3 | 京公网安备11030102011662号 |技术支持 Discuz!

    返回顶部