有關(guān)推送、自定義推送鈴聲

一.有關(guān)Android推送

1.常見(jiàn)推送通道

  • 自建通道
FCM通道:Firebase Cloud Messaging,是一項(xiàng)針對(duì)Android降传、iOS及Web的消息與通知的跨平臺(tái)解決方案,由Google擁有的Firebase公司提供勾怒。

極光通道:Aurora Mobile搬瑰,全面兼容和支持Android、iOS控硼、鴻蒙泽论、快應(yīng)用和winphone平臺(tái),提供極光通道卡乾、APNS翼悴、FCM、華為幔妨、小米鹦赎、OPPO、VIVO误堡、魅族古话、華碩等系統(tǒng)級(jí)消息下發(fā)通道。

  • 廠商通道:
華為通道

小米通道

OPPO通道

VIVO通道

魅族通道

榮耀通道

2.離線是否可收到推送

  • 極光通道:極光通道是自建通道锁施,需要長(zhǎng)依賴才能收到推送陪踩,設(shè)備離線消息不會(huì)下發(fā)果覆。

  • FCM通道:FCM通道是自建通道反症,設(shè)備離線可以收到推送。FCM服務(wù)器將消息發(fā)送到平臺(tái)特定的傳輸層:

Android:Android transport layer(ATL)钉汗,僅適用于運(yùn)行Google Play的安卓設(shè)備姥饰。

iOS:適用于Apple設(shè)備的Apple推送服務(wù)器(APNs)傻谁。

Web:Web應(yīng)用的網(wǎng)絡(luò)推送協(xié)議。
  • 廠商通道:廠商通道是系統(tǒng)通道列粪,設(shè)備離線也可以收到推送审磁。例如小米、華為岂座、OPPO态蒂、vivo、魅族掺逼、榮耀吃媒、FCM通道,需要集成各自的廠商通道才行吕喘。

3.通知渠道

從Android 8.0(API級(jí)別26)開(kāi)始赘那,必須為所有通知分配渠道,否則通知將不會(huì)顯示氯质。通過(guò)將通知?dú)w類(lèi)到不同的渠道中募舟,用戶可以停用應(yīng)用的特定通知渠道(而非停用您的所有通知),還可以控制每個(gè)渠道的視覺(jué)和聽(tīng)覺(jué)選項(xiàng)闻察。

在Android 7.1(API級(jí)別25)及更低版本的設(shè)備上拱礁,每個(gè)應(yīng)用其實(shí)只有一個(gè)渠道,用戶僅可以按應(yīng)用來(lái)管理通知辕漂。

注意:界面將渠道稱作“類(lèi)別”呢灶。

微信的通知類(lèi)別

4.通知的重要程度

從Android 8.0(API級(jí)別26)開(kāi)始,渠道還可以指定通知的重要程度等級(jí)importance钉嘹,因此鸯乃,發(fā)布到同一通知渠道的所有通知的行為都相同。

  • Urgent(緊急):發(fā)出聲音并彈出對(duì)話框跋涣。
  • High(高):發(fā)出聲音缨睡。
  • Medium(中):靜音。
  • Low(低):靜音陈辱,且不會(huì)在狀態(tài)欄中顯示奖年。

二.iOS自定義推送提示音

1.格式要求

音頻數(shù)據(jù)格式必須是Linear PCMMA4 (IMA/ADPCM)沛贪、μLaw陋守、aLaw中的一種,且時(shí)長(zhǎng)要求在30s以下利赋,否則就是系統(tǒng)默認(rèn)的鈴聲嗅义。

可以將音頻數(shù)據(jù)打包到aiffwavcaf文件中隐砸。

2.客戶端設(shè)置

方式一:將聲音文件導(dǎo)入工程之碗,操作步驟:選中工程Target --> Build Phases --> Copy Bundle Resources。

導(dǎo)入聲音文件

方式二:直接拖入到某文件夾下:

導(dǎo)入聲音文件

3.服務(wù)端設(shè)置

指定iOS平臺(tái)下的sound參數(shù)季希,具體傳入值是聲音文件名+后綴褪那,例如FCM自定義聲音格式:

{
   "message":{
      "token":"ce3_Fi431Eonq-_qPrvDP0:APA91bHr8R7-AXYbzw9JmwSi6C0rpx7hXABbKMtT1CJ5GrDhwozAXuBLmUOV3tRo3Nxt4DV6R3wmEI2AfVXhnw8XafNNksFLC5TnYmHq0XWpYVxOpP0yyDT19sCkPBshZGGUGhhPEJeq",
      "notification":{
        "title":"FCM Message",
        "body":"This is an FCM notification message!"
      },
      "apns":{
          "payload":{
              "aps":{
                  "sound":"叮咚.caf"
              }
          }
      }
   }
}

三.Android自定義推送提示音

1.格式要求

支持的文件格式包括mp3wav式塌、mpeg等博敬。

2.極光/OPPO/FCM通道通知實(shí)現(xiàn)

a.客戶端設(shè)置

<1>將音頻文件拖入到src/main/res/raw文件夾下:

導(dǎo)入聲音文件

<2>創(chuàng)建channel并設(shè)置sound:

const String channelGroupId = 'custom sound group';

const AndroidNotificationChannel channelHappy = AndroidNotificationChannel(
  'custom sound happy',
  '自定義鈴聲happy',
  description: '自定義鈴聲通道happy',
  importance: Importance.high,
  sound: RawResourceAndroidNotificationSound('happy'),
  groupId: channelGroupId,
);

const AndroidNotificationChannel channelSpring = AndroidNotificationChannel(
  'custom sound spring',
  '自定義鈴聲spring',
  description: '自定義鈴聲通道spring',
  importance: Importance.high,
  sound: RawResourceAndroidNotificationSound('spring'),
  groupId: channelGroupId,
);

final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();

調(diào)用下面的方法創(chuàng)建:

Future<void> _createNotificationChannelGroup() async {
  /// 創(chuàng)建分組
  const androidNotificationChannelGroup = AndroidNotificationChannelGroup(
    channelGroupId,
    '自定義鈴聲分組',
    description: '用于自定義鈴聲的分組',
  );
  await flutterLocalNotificationsPlugin
    .resolvePlatformSpecificImplementation<AndroidFlutterLocalNotificationsPlugin>()!
    .createNotificationChannelGroup(androidNotificationChannelGroup);

  /// 創(chuàng)建通知渠道并關(guān)聯(lián)到分組
  await flutterLocalNotificationsPlugin
    .resolvePlatformSpecificImplementation<AndroidFlutterLocalNotificationsPlugin>()!
    .createNotificationChannel(channelHappy);

  await flutterLocalNotificationsPlugin
    .resolvePlatformSpecificImplementation<AndroidFlutterLocalNotificationsPlugin>()!
    .createNotificationChannel(channelSpring);
}
設(shè)備上的自定義鈴聲通知渠道
b.服務(wù)器設(shè)置

推送時(shí)需要在notification下配置soundchannel_id字段,channel_id字段需與客戶端創(chuàng)建的channel id一致峰尝。

服務(wù)端字段設(shè)置

例如FCM平臺(tái)的服務(wù)端設(shè)置:

{
   "message":{
      "token":"fH-B3A9-Rky5jr-OlXC-Cj:APA91bGPOLYrkttswUrN9-maUZDUpbywTWptREHRMbwqCYSnvkTMio485Drfm1JQtmdRWgZ42h4NPp0zPLXU6iH7BPzE6RNkgoOW9P8hJU8H7hRvTzTTrb8eHUaKTC_S5l0yOPWuggs_",
      "notification":{
        "title":"FCM Message",
        "body":"This is an FCM notification message!"
      },
      "android":{
          "notification":{
              /// 如果 sound 和 channel_id都有傳偏窝,那么會(huì)以 channel_id 的鈴聲為準(zhǔn)
              /// Android 8.0以上,需傳入channel_id,否則自定義鈴聲失效
              "channel_id": "custom sound happy",
              "sound":"happy"
          }
      }
   }
}

四.iOS推送語(yǔ)音播報(bào)

1.新增通知擴(kuò)展Notification Service Extension

新增通知擴(kuò)展

2.修改通知擴(kuò)展支持的最低版本:

image.png

后續(xù)待定祭往。伦意。。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末硼补,一起剝皮案震驚了整個(gè)濱河市驮肉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌已骇,老刑警劉巖离钝,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異褪储,居然都是意外死亡卵渴,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)鲤竹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)浪读,“玉大人,你說(shuō)我怎么就攤上這事宛裕∩校” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵揩尸,是天一觀的道長(zhǎng)蛹屿。 經(jīng)常有香客問(wèn)我,道長(zhǎng)岩榆,這世上最難降的妖魔是什么错负? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮勇边,結(jié)果婚禮上犹撒,老公的妹妹穿的比我還像新娘。我一直安慰自己粒褒,他們只是感情好识颊,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著奕坟,像睡著了一般祥款。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上月杉,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天刃跛,我揣著相機(jī)與錄音,去河邊找鬼苛萎。 笑死桨昙,一個(gè)胖子當(dāng)著我的面吹牛检号,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蛙酪,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼齐苛,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了滤否?” 一聲冷哼從身側(cè)響起脸狸,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤最仑,失蹤者是張志新(化名)和其女友劉穎藐俺,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體泥彤,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡欲芹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吟吝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片菱父。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖剑逃,靈堂內(nèi)的尸體忽然破棺而出浙宜,到底是詐尸還是另有隱情,我是刑警寧澤蛹磺,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布粟瞬,位于F島的核電站,受9級(jí)特大地震影響萤捆,放射性物質(zhì)發(fā)生泄漏裙品。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一俗或、第九天 我趴在偏房一處隱蔽的房頂上張望市怎。 院中可真熱鬧,春花似錦辛慰、人聲如沸区匠。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)驰弄。三九已至,卻和暖如春狞膘,著一層夾襖步出監(jiān)牢的瞬間揩懒,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工挽封, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留已球,地道東北人臣镣。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像智亮,于是被迫代替她去往敵國(guó)和親忆某。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 近來(lái)在做自定義推送的功能開(kāi)發(fā)阔蛉,總結(jié)下開(kāi)發(fā)過(guò)程中遇到的問(wèn)題弃舒。蘋(píng)果的推送分遠(yuǎn)程推送和本地推送,這兩種推送都是支持自定義...
    ch32053閱讀 5,850評(píng)論 3 6
  • 首先推送就遇到很多坑状原,話不多說(shuō)先上代碼聋呢。 由于Hbuilder目前只支持個(gè)推和小米的推送,所以就介入了個(gè)推颠区。 1....
    shyizne閱讀 2,095評(píng)論 0 2
  • 因?yàn)楣綼pp的需求削锰,需要加個(gè)自定義消息推送通知聲音,因?yàn)椴欢沧康脑侠常灾氨豢撕芫闷鞣罚榱撕芏噘Y料,終于搞...
    凹凸怪cq閱讀 5,419評(píng)論 11 14
  • 自定義通知聲音還是由 iOS 系統(tǒng)來(lái)播放的朋截,所以對(duì)音頻數(shù)據(jù)格式有限制蛹稍,可以是如下四種之一: Linear PCM ...
    開(kāi)發(fā)小白唄閱讀 3,116評(píng)論 0 2
  • 1.android的推送一直飽受詬病,最近項(xiàng)目中需要用到推送。本來(lái)用的是極光推送,但是應(yīng)用一旦被殺死推送便收不到部服。...
    LaughingHe閱讀 6,634評(píng)論 6 2