HarmonyOS 鸿蒙Next推送代码哪一步会弹出推送权限的授权框,没看明白
HarmonyOS 鸿蒙Next推送代码哪一步会弹出推送权限的授权框,没看明白 鸿蒙推送代码哪一步会弹出推送权限的授权框,没看明白
申请推送权限这一步,可以拉起弹窗,具体看下面代码,有注释:
import { notificationManager } from '@kit.NotificationKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { common } from '@kit.AbilityKit';
function notificationPermission(context:common.UIAbilityContext) {
notificationManager.isNotificationEnabled().then((data: boolean) => {
console.info(`isNotificationEnabled success, data: ${JSON.stringify(data)}`);
if (!data) {
// 当前函数requestEnableNotification会拉起弹窗
notificationManager.requestEnableNotification(context).then(() => {
console.info(`requestEnableNotification success`)
}).catch((err: BusinessError) => {
if (1600004 == err.code) {
console.info(`requestEnableNotification refused`);
} else {
console.error(`requestEnableNotification failed, code is ${err.code}, message is ${err.message}`);
}
});
}
}).catch((err: BusinessError) => {
console.error(`isNotificationEnabled fail: ${JSON.stringify(err)}`);
});
}
@Entry
@Component
struct Index {
@State message: string = 'Hello World';
aboutToAppear(): void {
let context = this as common.UIAbilityContext;
// 通知授权
notificationPermission(context)
}
build() {
RelativeContainer() {
Text(this.message)
.id('HelloWorld')
.fontSize(50)
.fontWeight(FontWeight.Bold)
.alignRules({
center: { anchor: 'container', align: VerticalAlign.Center },
middle: { anchor: 'container', align: HorizontalAlign.Center }
})
}
.height('100%')
.width('100%')
}
}
开源网站上收录了UI、系统接口、Web、创新特性等场景化鸿蒙示例DEMO,开发中可以参考:https://gitee.com/scenario-samples/demo-index
更多关于HarmonyOS 鸿蒙Next推送代码哪一步会弹出推送权限的授权框,没看明白的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
这个需要手动申请
requestEnableNotification
requestEnableNotification
方法是用于在鸿蒙操作系统(HarmonyOS)中请求发送通知的权限。这个方法需要在应用尝试发送通知之前调用,以确保应用已经获得了用户的授权。以下是关于这个方法的详细介绍和使用步骤:
方法功能
requestEnableNotification
方法属于 NotificationManager
模块,它允许应用请求系统给予发送通知的权限。第一次调用此方法时,系统会显示一个弹窗,让用户选择是否允许该应用发送通知。如果用户同意,应用将能够发送通知;如果用户拒绝,应用将无法发送通知,且再次调用此方法时不会重复弹窗询问。
接口用法
你可以通过以下方式调用 requestEnableNotification
方法:
import { notificationManager } from '@kit.NotificationKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { common } from '@kit.AbilityKit';
const TAG: string = '[PublishOperation]';
const DOMAIN_NUMBER: number = 0xFF00;
let context = this.getContext() as common.UIAbilityContext;
notificationManager.isNotificationEnabled().then((boolean) => {
hilog.info(DOMAIN_NUMBER, TAG, "isNotificationEnabled success, " + JSON.stringify(data));
if (!data) {
notificationManager.requestEnableNotification(context).then(() => {
hilog.info(DOMAIN_NUMBER, TAG, "requestEnableNotification success");
}).catch((err: BusinessError) => {
if (1600004 == err.code) {
hilog.error(DOMAIN_NUMBER, TAG, `requestEnableNotification refused, code is ${err.code}, message is ${err.message}`);
} else {
hilog.error(DOMAIN_NUMBER, TAG, `requestEnableNotification failed, code is ${err.code}, message is ${err.message}`);
}
});
}
}).catch((err: BusinessError) {});
这个是在哪里看到的,为啥我在推送的文档里面没看到有这一段,直接就是申请token那步了。
在HarmonyOS(鸿蒙)系统中,推送代码涉及权限授权框的弹出,通常发生在系统请求应用推送通知权限时。具体步骤如下:
-
权限请求发起:当应用尝试进行通知推送时,系统会检查该应用是否已获得相应的通知权限。如果未获得,系统会发起权限请求。
-
权限授权框弹出:系统检测到权限缺失后,会自动弹出一个权限授权框,提示用户允许或拒绝应用获取通知权限。这个授权框通常包含应用的图标、名称以及请求的权限类型(即通知权限)。
-
用户操作:用户看到这个授权框后,可以选择“允许”或“拒绝”。如果用户选择“允许”,应用将获得通知权限,可以正常推送通知;如果用户选择“拒绝”,则应用无法推送通知,除非用户后续手动更改权限设置。
在鸿蒙系统的开发文档中,这部分流程通常会有详细的说明,包括如何在代码中发起权限请求、如何处理用户的授权结果等。如果你在具体实现过程中没看明白,可能是因为没有仔细阅读相关文档或代码示例。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html