HarmonyOS 如何跳转到应用设置页面?

HarmonyOS 如何跳转到应用设置页面?


HarmonyOS
2024-10-21 12:54:55
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

请参考以下代码:

module.json文件:

"requestPermissions":[  
{  
  "name": "ohos.permission.ACTIVITY_MOTION",  
"reason": "$string:EntryAbility_label",  
"usedScene": {  
  "abilities": [  
  "EntryAbility"  
  ],  
  "when": "inuse"  
}  
},  
{  
  "name": "ohos.permission.CAMERA",  
"reason": "$string:EntryAbility_desc",  
"usedScene": {  
  "abilities": [  
  "EntryAbility"  
  ],  
  "when": "inuse"  
}  
}  
]

Index文件。

import { abilityAccessCtrl, common, Permissions, Want } from '@kit.AbilityKit';  
import { BusinessError } from '@kit.BasicServicesKit';  
const permissions: Array<Permissions> = ["ohos.permission.ACTIVITY_MOTION","ohos.permission.CAMERA"];  
function reqPermissionsFromUser(permissions: Array<Permissions>, context: common.UIAbilityContext): void {  
  let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();  
  atManager.requestPermissionsFromUser(context, permissions).then((data) => {  
    let grantStatus: Array<number> = data.authResults;  
    let length: number = grantStatus.length;  
    for (let i = 0; i < length; i++) {  
      if (grantStatus[i] === 0) {  
        // 用户授权,可以继续访问目标操作  
      } else {  
        // 用户拒绝授权,提示用户必须授权才能访问当前页面的功能,并引导用户到系统设置中打开相应的权限  
        openPermissionsInSystemSettings(context)  
        return;  
      }  
    }  
    // 授权成功  
  }).catch((err: BusinessError) => {  
    console.error(`Failed to request permissions from user. Code is ${err.code}, message is ${err.message}`);  
  })  
}  
  
function openPermissionsInSystemSettings(context: common.UIAbilityContext): void {  
  // let context = getContext(this) as common.UIAbilityContext  
  let wantInfo: Want = {  
    bundleName: 'com.huawei.hmos.settings',  
    abilityName: 'com.huawei.hmos.settings.MainAbility',  
    uri: 'application_info_entry',  
    parameters: {  
      settingsParamBundleName: 'com.example.perssions'  
    }  
  }  
  context.startAbility(wantInfo).then(() => {  
  }).catch((error: Error) => {  
  })  
}  
  
@Entry  
@Component  
  
struct Index {  
  @State message: string = 'Hello World';  
  aboutToAppear() {  
    const context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;  
    reqPermissionsFromUser(permissions, context);  
  }  
  
  build() {  
    Row() {  
      Column() {  
        Text(this.message)  
          .fontSize(50)  
          .fontWeight(FontWeight.Bold)  
      }  
      .width('100%')  
    }  
    .height('100%')  
  }  
}

记得改变 settingsParamBundleName的参数。

分享
微博
QQ
微信
回复
2024-10-21 16:46:02
相关问题
如何跳转到设置中的应用详情页面
2050浏览 • 1回复 待解决
如何跳转到应用市场app下载页面
7335浏览 • 1回复 待解决
HarmonyOS如何跳转到发短信页面
340浏览 • 1回复 待解决
如何实现跳转到系统设置
1563浏览 • 1回复 待解决
如何跳转到WIFI列表页面
234浏览 • 1回复 待解决
鸿蒙应用如何跳转到Android应用
4593浏览 • 1回复 待解决
如何跳转到系统发送短信页面
1862浏览 • 1回复 待解决
ArkTs如何跳转当前应用设置页面
2354浏览 • 1回复 待解决
如何跳转到系统的日历应用
336浏览 • 1回复 待解决
HarmonyOS 点击tabs如何跳转到二级页面
248浏览 • 1回复 待解决
HarmonyOS app中怎么跳转到系统设置
304浏览 • 1回复 待解决
如何跳转到共享包中的指定页面
2037浏览 • 1回复 待解决