OpenHarmony开发者论坛

标题: OpenHarmony:如何查询想要打开的设置页面的uri [打印本页]

作者: 我心永恒    时间: 2025-4-21 21:33
标题: OpenHarmony:如何查询想要打开的设置页面的uri
[md]以下是根据你提供的要求撰写的求助帖子模板,内容需要根据实际开发情况补充细节:

---

### 【问题描述】

#### 1. 问题现象和背景

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

#### 2. 相关代码

```javascript
  /**
   * 打开显示与亮度设置页面
   * @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. **查阅官方文档**:参考[系统能力接口文档](https://gitee.com/openharmony/docs),但未找到完整的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`中的 `abilities`或 `requestPermissions`配置片段。
[/md]
作者: onefan    时间: 2025-4-22 09:38
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",
等等。。。





欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5