codecamp

发布进度条类型通知

进度条通知也是常见的通知类型,主要应用于文件下载、事务处理进度显示。HarmonyOS提供了进度条模板,发布通知应用设置好进度条模板的属性值,如模板名、模板数据,通过通知子系统发送到通知栏显示。

目前系统模板仅支持进度条模板,通知模板NotificationTemplate中的data参数为用户自定义数据,用于显示与模块相关的数据,效果示意如下图所示。

接口说明

isSupportTemplate()是查询模板是否支持接口,目前仅支持进度条模板。

接口名

描述

isSupportTemplate(templateName: string, callback: AsyncCallback<boolean>): void

查询模板是否存在。

开发步骤

  1. 导入模块。

    1. import NotificationManager from '@ohos.notificationManager';
  2. 查询系统是否支持进度条模板,查询结果为支持downloadTemplate模板类通知。

    1. NotificationManager.isSupportTemplate('downloadTemplate').then((data) => {
    2. console.info(`[ANS] isSupportTemplate success`);
    3. let isSupportTpl: boolean = data; // isSupportTpl的值为true表示支持支持downloadTemplate模板类通知,false表示不支持
    4. // ...
    5. }).catch((err) => {
    6. console.error(`[ANS] isSupportTemplate failed, error[${err}]`);
    7. });
    说明

    查询系统支持进度条模板后,再进行后续的步骤操作。

  3. 构造进度条模板对象,并发布通知。

    1. let template = {
    2. name:'downloadTemplate',
    3. data: {
    4. title: '标题:',
    5. fileName: 'music.mp4',
    6. progressValue: 30,
    7. progressMaxValue:100,
    8. }
    9. }
    10. //构造NotificationRequest对象
    11. let notificationRquest = {
    12. id: 1,
    13. slotType: notify.SlotType.OTHER_TYPES,
    14. template: template,
    15. content: {
    16. contentType: notify.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,
    17. normal: {
    18. title: template.data.title + template.data.fileName,
    19. text: "sendTemplate",
    20. additionalText: "30%"
    21. }
    22. },
    23. deliveryTime: new Date().getTime(),
    24. showDeliveryTime: true
    25. }
    26. notify.publish(notificationRquest).then(() => {
    27. console.info(`[ANS] publish success `);
    28. }).catch((err) => {
    29. console.error(`[ANS] failed to publish, error[${err}]`);
    30. });
发布基础类型通知
为通知添加行为意图
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录
HAR

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }