【FAQ】HarmonyOS SDK 闭源开放能力 —Notification Kit
1.问题描述:
notificationFlagStatus 如何引入?文档中搜索不到相关内容。
解决方案:
1.notificationFlags 是 NotificationRequest 类中定义的属性,这个属性是“只读”类型,因此在使用时,不支持修改 notificationFlags 的值。
2.如果想要实现消息有铃声、震动等能力,可以通过 SlotType 属性来设置通知渠道的类型。 比如社交通信、服务提醒等场景是有铃声、震动等强提醒。 而内容资讯、其他等渠道类型是没有铃声震动等强提醒的,具体可参考下方文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/notification-slot-0000001774120666。
2.问题描述:
文档写的 ExtensionPayload 通知扩展消息,要求 notification.category 取值为“EXPRESS”。是否可以反过来理解,当 notification.category 取值为 “EXPRESS” 时,就是 ExtensionPayload 通知扩展消息?
解决方案:
1.推送 push-type=0 普通通知,指定 category=EXPRESS,终端设备的表现:展示普通通知,这么理解是没有问题的
2.推送 push-type=2 拓展通知,指定 category=EXPRESS,终端设备的表现:展示普通通知+语音播报效果
第二点可以这么理解:
1、应用进程不存在:消息会触发 ExtensionAbility 组件-继承自 RemoteNotificationExtensionAbility(通知扩展 Ability),然后开发者自行实现语音播报的能力-然后通过开发者再返回 return 对象, 就可以通知栏消息和语音播报能力。
2、当应用进程存在:无论应用在前台或者在后台均不弹出通知提醒,可以通过 receiveMessage()方法实时获取通知扩展消息数据,
3.问题描述:
如何通过系统通知跳转 App,进入某个 ts 处理通知携带的参数。在 module.json5 新增 extensionAbilities,点击系统通知没有进入指定的 ts?
解决方案:
点击通知跳转可以设置 WantAgent 动作
1、可以参考文档创建 WantAgentInfo 信息场景一,点击消息拉起 UIAbility,首先需要在 module.json5 配置文件的 abilities 标签中声明需要跳转的 UIAbility。
2、WantAgent 的 WantAgentInfo 信息中,bundleName 设置应用包名、abilityName 设置为需要跳转的 UIAbility 即可跳转,也可以通过 action 字段等方式跳转,详情参考 API 文档说明。
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/notification-with-wantagent-V5
4.问题描述:
申请后台音频播放长时间任务失败,报错 9800006 Notification verification failed. The title or text of the notification cannot be empty,使用官方的 demo 可以申请成功,但是移植对应的逻辑到项目中失败,如何解决?
解决方案:
后台任务有匹配规则,不能在 HOME 里添加 uris,可以在 skills 列表数据中另起一个匹配规则,不影响隐式跳转匹配,也不影响后台任务的匹配,例如: ts "skills": [ { "entities": [ "entity.system.home", ], "actions": [ "action.system.home", ] }, { "actions": [ "ohos.want.action.viewData" ], "uris": [ { "scheme": 'amap' } ] } ]
5.问题描述:
怎么打开推送通知权限,若是用户没有开权限,跳转到设置页面打开权限
解决方案:
一、可以通过 isNotificationEnabled():Promise<boolean> 查询通知是否授权。
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/notification-enable-V5
二、如果应用首次拒绝了消息通知,应用希望能够引导用户拉起设置应用设置允许通知,用来接收应用内的推送消息;并且在设置完后返回页面可以监听到修改后的状态。可以参考以下案例:
1、通过 startability 显式拉起设置应用-通知管理界面,配置相应的 want 信息(不推荐使用隐式拉起的方式)。
2、在进入页面时通过 Notification.requestEnableNotification()监听应用请求通知使能
核心代码
为 Button 绑定拉起事件
在打开页面时获取通知管理中按钮状态,Notification.requestEnableNotification()请求发送通知的许可,第一次调用会弹窗让用户选择。
评论