發(fā)布基礎(chǔ)類型通知

2024-02-16 13:50 更新

基礎(chǔ)類型通知主要應(yīng)用于發(fā)送短信息、提示信息、廣告推送等,支持普通文本類型、長(zhǎng)文本類型、多行文本類型和圖片類型。

表1 基礎(chǔ)類型通知中的內(nèi)容分類

類型

描述

NOTIFICATION_CONTENT_BASIC_TEXT

普通文本類型。

NOTIFICATION_CONTENT_LONG_TEXT

長(zhǎng)文本類型。

NOTIFICATION_CONTENT_MULTILINE

多行文本類型。

NOTIFICATION_CONTENT_PICTURE

圖片類型。

目前系統(tǒng)僅通知欄訂閱了通知,將通知顯示在通知欄里?;A(chǔ)類型通知呈現(xiàn)效果示意圖如下所示。

說(shuō)明

根據(jù)設(shè)計(jì)樣式的不同,通知的實(shí)際顯示效果可能有所差異。本文中所涉及的通知效果圖僅供參考,請(qǐng)以實(shí)際運(yùn)行結(jié)果為準(zhǔn)。

圖1 基礎(chǔ)類型通知呈現(xiàn)效果示意圖 

接口說(shuō)明

通知發(fā)布接口如下表所示,不同發(fā)布類型通知由NotificationRequest的字段攜帶不同的信息。

接口名

描述

publish(request: NotificationRequest, callback: AsyncCallback<void>): void

發(fā)布通知。

cancel(id: number, label: string, callback: AsyncCallback<void>): void

取消指定的通知。

cancelAll(callback: AsyncCallback<void>): void;

取消所有該應(yīng)用發(fā)布的通知。

開發(fā)步驟

  1. 導(dǎo)入模塊。

    1. import NotificationManager from '@ohos.notificationManager';
  2. 構(gòu)造NotificationRequest對(duì)象,并發(fā)布通知。

    • 普通文本類型通知由標(biāo)題、文本內(nèi)容和附加信息三個(gè)字段組成,其中標(biāo)題和文本內(nèi)容是必填字段。

      1. let notificationRequest = {
      2. id: 1,
      3. content: {
      4. contentType: NotificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, // 普通文本類型通知
      5. normal: {
      6. title: 'test_title',
      7. text: 'test_text',
      8. additionalText: 'test_additionalText',
      9. }
      10. }
      11. }
      12. NotificationManager.publish(notificationRequest, (err) => {
      13. if (err) {
      14. console.error(`[ANS] failed to publish, error[${err}]`);
      15. return;
      16. }
      17. console.info(`[ANS] publish success`);
      18. });

      運(yùn)行效果如下圖所示。

    • 長(zhǎng)文本類型通知繼承了普通文本類型的字段,同時(shí)新增了長(zhǎng)文本內(nèi)容、內(nèi)容概要和通知展開時(shí)的標(biāo)題。通知默認(rèn)顯示與普通文本相同,展開后,標(biāo)題顯示為展開后標(biāo)題內(nèi)容,內(nèi)容為長(zhǎng)文本內(nèi)容。

      1. let notificationRequest = {
      2. id: 1,
      3. content: {
      4. contentType: NotificationManager.ContentType.NOTIFICATION_CONTENT_LONG_TEXT, // 長(zhǎng)文本類型通知
      5. longText: {
      6. title: 'test_title',
      7. text: 'test_text',
      8. additionalText: 'test_additionalText',
      9. longText: 'test_longText',
      10. briefText: 'test_briefText',
      11. expandedTitle: 'test_expandedTitle',
      12. }
      13. }
      14. }
      15. // 發(fā)布通知
      16. NotificationManager.publish(notificationRequest, (err) => {
      17. if (err) {
      18. console.error(`[ANS] failed to publish, error[${err}]`);
      19. return;
      20. }
      21. console.info(`[ANS] publish success`);
      22. });

      運(yùn)行效果如下圖所示。

    • 多行文本類型通知繼承了普通文本類型的字段,同時(shí)新增了多行文本內(nèi)容、內(nèi)容概要和通知展開時(shí)的標(biāo)題。通知默認(rèn)顯示與普通文本相同,展開后,標(biāo)題顯示為展開后標(biāo)題內(nèi)容,多行文本內(nèi)容多行顯示。

      1. let notificationRequest = {
      2. id: 1,
      3. content: {
      4. contentType: NotificationManager.ContentType.NOTIFICATION_CONTENT_MULTILINE, // 多行文本類型通知
      5. multiLine: {
      6. title: 'test_title',
      7. text: 'test_text',
      8. briefText: 'test_briefText',
      9. longTitle: 'test_longTitle',
      10. lines: ['line_01', 'line_02', 'line_03', 'line_04'],
      11. }
      12. }
      13. }
      14. // 發(fā)布通知
      15. NotificationManager.publish(notificationRequest, (err) => {
      16. if (err) {
      17. console.error(`[ANS] failed to publish, error[${err}]`);
      18. return;
      19. }
      20. console.info(`[ANS] publish success`);
      21. });

      運(yùn)行效果如下圖所示。

    • 圖片類型通知繼承了普通文本類型的字段,同時(shí)新增了圖片內(nèi)容、內(nèi)容概要和通知展開時(shí)的標(biāo)題,圖片內(nèi)容為PixelMap型對(duì)象,其大小不能超過(guò)2M。

      1. let imagePixelMap: PixelMap = undefined; // 需要獲取圖片PixelMap信息
      2. let notificationRequest: notificationManager.NotificationRequest = {
      3. id: 1,
      4. content: {
      5. contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_PICTURE,
      6. picture: {
      7. title: 'test_title',
      8. text: 'test_text',
      9. additionalText: 'test_additionalText',
      10. briefText: 'test_briefText',
      11. expandedTitle: 'test_expandedTitle',
      12. picture: imagePixelMap
      13. }
      14. }
      15. };
      16. // 發(fā)布通知
      17. notificationManager.publish(notificationRequest, (err) => {
      18. if (err) {
      19. console.error(`Failed to publish notification. Code is ${err.code}, message is ${err.message}`);
      20. return;
      21. }
      22. console.info('Succeeded in publishing notification.');
      23. });

      運(yùn)行效果如下圖所示。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)