HarmonyOS鸿蒙Next中请求通知授权方法返回有误

HarmonyOS鸿蒙Next中请求通知授权方法返回有误 请求通知授权。 通过requestEnableNotification的错误码判断用户是否授权 notificationManager.isNotificationEnabled() 但是该方法在APP未授权时返回也是true,导致后续操作失败

3 回复

参考代码:

import notificationManager from '@ohos.notificationManager';
import { Base } from '@ohos.base';
import hilog from '@ohos.hilog';
import common from '@ohos.app.ability.common';
const TAG: string = '[PublishOperation]';
const DOMAIN_NUMBER: number = 0xFF00;
@Entry
@Component
struct Page {
  build() {
    Column() {
      Text('点击测试')
        .padding(30)
        .onClick(() => {
          this.testNotification()
        })
    }
  }
  testNotification(){
    let context = getContext(this) as common.UIAbilityContext;
    notificationManager.isNotificationEnabled().then((data: boolean) => {
      console.info("isNotificationEnabled success, data: " + JSON.stringify(data));
      if(!data){
        notificationManager.requestEnableNotification(context).then(() => {
          hilog.info(DOMAIN_NUMBER, TAG, `[ANS] requestEnableNotification success`);
        }).catch((err : Base.BusinessError) => {
          if(1600004 == err.code){
            console.info(`[ANS] requestEnableNotification refused`);
          } else {
            console.error(`[ANS] requestEnableNotification failed, code is ${err.code}, message is ${err.message}`);
          }
        });
      }
    }).catch((err : Base.BusinessError) => {
      console.error(`isNotificationEnabled fail: ${JSON.stringify(err)}`);
    });
  }
}

指导文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/notification-enable-V5

更多关于HarmonyOS鸿蒙Next中请求通知授权方法返回有误的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,请求通知授权的方法可能返回有误的原因通常与权限配置或API调用方式有关。首先,确保在应用的config.json文件中正确配置了ohos.permission.NOTIFICATION权限。此外,调用requestPermissionsFromUser方法时,传入的权限数组应包含ohos.permission.NOTIFICATION,并确保在onRequestPermissionsFromUserResult回调中正确处理授权结果。如果仍然返回有误,检查设备是否支持通知功能,或查看系统日志以获取更多错误信息。

在HarmonyOS鸿蒙Next中,请求通知授权时返回错误可能是由于以下原因:

  1. 权限未声明:确保在config.json中声明了ohos.permission.NOTIFICATION_CONTROL权限。

  2. API调用错误:检查requestNotificationPermission的调用方式是否正确,确保传入的参数符合要求。

  3. 系统限制:某些设备或系统版本可能不支持通知授权功能,建议检查设备兼容性。

  4. 回调处理问题:确认onRequestPermissionsResult回调方法是否正确实现,处理授权结果。

建议调试时逐步排查以上问题,确保权限声明、API调用和回调处理无误。

回到顶部