HarmonyOS 鸿蒙实现多场景的通知
HarmonyOS 鸿蒙实现多场景的通知
背景
在应用开发中push场景是应用在后台或者在前台时不可缺少的重要功能,要知道为了触达率和离线通知大多数应用都选择使用第三方sdk ,那么在应用开发中通知场景不仅仅是简单的提示文字,他还有多样化的场景实现,在开发中,通知的重要性不言而喻。通知是一种有效且直接的沟通方式,可以帮助开发者与用户之间建立更好的互动,并提升用户体验。那么通知的意义都有哪些呢:
1.增强用户参与度:
定期发送有用的内容或提醒可以增加用户的活跃度和留存率。
2.提高用户满意度:
提供个性化通知,如基于用户行为或偏好定制的消息,可以让用户感到被关注和重视。
3.促进用户忠诚度:
定期发送有价值的通知,如优惠券、会员专享福利等,可以增加用户的忠诚度。
4.营销与推广:
通过有针对性的营销活动通知,可以提高转化率和销售额。
5.紧急事件响应:
对于涉及安全、健康或紧急情况的应用,即时通知可以帮助用户快速采取行动。
打开手机向下滑动查看状态栏中的通知可以看到,大多数app的通知消息的格式结构为logo、标题、推送时间、内容、内容缩略图等方式进行展示,所以我们在案例中也采用类似的形式
当前展示平台为安卓平台,接下来在harmoneyOS中实现多种类型的推送
效果实现
在功能实现之前我们还需要实现通知发送的配置,应用需要获取用户授权才能发送通知。在通知发布前调用requestEnableNotification()方法,弹窗让用户选择是否允许发送通知,后续再次调用requestEnableNotification()方法时,则不再弹窗。
在页面的生命周期aboutToAppear()中来实现
notificationManager.isNotificationEnabled().then((data: boolean) => {
hilog.info(DOMAIN_NUMBER, TAG, "isNotificationEnabled success, data: " + JSON.stringify(data));
if(!data){
notificationManager.requestEnableNotification(context).then(() => {
hilog.info(DOMAIN_NUMBER, TAG, [ANS] requestEnableNotification success
);
}).catch((err : BusinessError) => {
if(1600004 == err.code){
} else {
}
});
}
}).catch((err : BusinessError) => {
hilog.error(DOMAIN_NUMBER, TAG, isNotificationEnabled fail: ${JSON.stringify(err)}
);
});
执行之后在应用中展示如下
之后对 notificationContentType进行配置,首先实现纯文本类型的通知
notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT
配置完成后构建内容
let notificationRequest: notificationManager.NotificationRequest = {
id: 1,
content: {
notificationContentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,
normal: {
title: ‘测试标题’,
text: ‘我是一个测试的内容’,
additionalText: ‘test_additionalText’,
}
}
};
然后我们创建一个按钮来呼出通知
把notificationManager.publish的呼出事件放入button按钮中
Button(“click”).onClick(()=>{
notificationManager.publish(notificationRequest, (err: BusinessError) => {
if (err) {
hilog.error(DOMAIN_NUMBER, TAG, Failed to publish notification. Code is ${err.code}, message is ${err.message}
);
return;
}
hilog.info(DOMAIN_NUMBER, TAG, ‘Succeeded in publishing notification.’);
});
})
点击按钮后可以看到通知消息在手机上已经显示成功,我们创建的通知已经展示了出来
那么我们如果在应用中想要实现下载进度的通知如何实现呢?
这时候要在信息创建中构造进度条的通知模板
template: {
name: ‘downloadTemplate’,
data: { title: ‘成龙历险记大电影’, fileName: ‘xxxx.mp4’, progressValue: 45 }
}
详细代码如下
let notificationRequest: notificationManager.NotificationRequest = {
id: 1,
content: {
notificationContentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,
normal: {
title: ‘测试标题’,
text: ‘我是一个测试的内容’,
additionalText: ‘test_additionalText’,
}
},
template: {
name: ‘downloadTemplate’,
data: { title: ‘成龙历险记大电影’, fileName: ‘xxxx.mp4’, progressValue: 45 }
}
};
按钮的事件并没有改变,构造完成后直接点击button按钮
可以看到进度通知就实现了
进度条结束之后调用通知删除事件
notificationManager.cancel(1, (err: BusinessError) => {
if (err) {
hilog.error(DOMAIN_NUMBER, TAG, Failed to cancel notification. Code is ${err.code}, message is ${err.message}
);
return;
}
hilog.info(DOMAIN_NUMBER, TAG, ‘Succeeded in cancel notification.’);
});
这样多样式的应用内通知就实现了
关于HarmonyOS 鸿蒙实现多场景的通知的问题,您也可以访问:https://www.itying.com/category-93-b0.html 联系官网客服。