Notification Kit(用户通知服务)请求通知授权

目前现状在通知发布前调用requestEnableNotification()方法,弹窗让用户选择是否允许发送通知,仅弹窗一次,后续调用该接口不再弹窗,此时如需要须手动获取通知授权。

期望为用户点击取消后,应用后续再次调用requestEnableNotification()方法时能够再次调起弹框进行授权,或者可以跳转到系统设置对应的具体页面

方便用户操作,避免用户不知道如何打开权限

HarmonyOS
2024-05-10 18:27:26
3079浏览
已于2024-5-10 18:29:12修改
收藏 0
回答 1
回答 1
按赞同
/
按时间
小小肉蟹

系统设计上考虑在弹框时用户点击取消代表用户不允许发送通知,后续继续弹窗会打扰用户。

如果应用期望实现用户点击取消后,再次调用requestEnableNotification时可以拉起弹框或者跳转,需应用自行实现,参考代码如下(是否是首次点击可以结合本地存储preferences来判断):

notificationManager.isNotificationEnabled().then((data: boolean) => { 
  console.info("[ANS] isNotificationEnabled success, data: " + JSON.stringify(data)); 
  if(!data){ 
notificationManager.requestEnableNotification().then(() => { 
console.info([ANS] requestEnableNotification success); 
}).catch((err:Base.BusinessError) => { 
console.error([ANS] requestEnableNotification failed, code is ${err.code}, message is ${err.message}); 
// 用户拒绝,可自行弹框后引导跳转到设置页面 
if (1600004 === err.code) { 
const context = getContext(this) as common.UIAbilityContext; 
let want: Want = { 
bundleName: ‘com.huawei.hmos.settings’, 
abilityName: ‘com.huawei.hmos.settings.MainAbility’, 
uri: ‘application_info_entry’, 
parameters: { 
pushParams: ‘’ // 应用包名 
} 
} 
 
context.startAbility(want) 
.then(() => { 
console.log(Success to startAbility); 
}) 
.catch((err: BusinessError) => { 
console.error(Failed to startAbility. Code: ${err.code}, message: ${err.message}); 
}); 
} 
 
}); 
} 
}).catch((err: Base.BusinessError) => { 
console.error(isNotificationEnabled fail: ${JSON.stringify(err)}); 
});
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
分享
微博
QQ
微信
回复
2024-05-11 10:19:23


相关问题
HarmonyOS 通知授权弹框无法弹出 -
1007浏览 • 1回复 待解决
取消Account Kit 获取用户头像昵称授权
1340浏览 • 1回复 待解决
如何向用户请求授权广告跟踪权限
1021浏览 • 1回复 待解决
HarmonyOS 通知问题
363浏览 • 1回复 待解决
HarmonyOS 消息通知
961浏览 • 1回复 待解决
定位授权 直接提示用户拒绝授权
1038浏览 • 1回复 待解决
HarmonyOS 通知权限
541浏览 • 1回复 待解决
HarmonyOS 推送通知
790浏览 • 1回复 待解决