iOS第三方推送集成以及推送時鈴聲的改變

各位大佬們蟹瘾,你們好圾浅。很久沒更新文章了,今天有在做推送憾朴,老板要求把原來系統(tǒng)的鈴聲換成我們專屬的狸捕,或者說,當(dāng)用戶給你推送一個重要的消息众雷,可以用獨(dú)特的聲音告知用戶灸拍,例如:
“您有一份外賣訂單做祝,請及時查看”;“您有一個交易信息鸡岗,請查看”等等混槐。
關(guān)于這種根據(jù)特殊的推送內(nèi)容實(shí)現(xiàn)特殊的聲音,解決后第一時間記錄一下文章轩性,以便日后方便使用声登。我先說一下思路好了:

關(guān)于推送,我不用多說揣苏,這個是用來推送消息悯嗓,無論APP是否掛起。而推送內(nèi)容都是由后臺決定。比如說A購買了B的東西,B這個時候不在線营曼,如何讓B立馬知道有人下單帝牡,這時候除了短信就是推送。A在購買的B東西的時候个少,給服務(wù)器發(fā)送了請求洪乍,而服務(wù)器又要給第三方推送平臺發(fā)送請求,第三方平臺又會給B發(fā)送推送夜焦。整個流程就是這樣壳澳。然而如果說是音頻的話,那自然就是當(dāng)用戶收到推送的時候茫经,調(diào)用本地的音頻文件完成推送音頻播放巷波。

    剛開始的時候,我以為是本地Appdelegate里方法判斷并且調(diào)用音頻播放的功能卸伞,所以我考慮到了1.當(dāng)用戶在使用的時候收到了推送抹镊。 2.當(dāng)用戶按Home鍵把APP掛在后臺的時候。3.當(dāng)用戶徹底從進(jìn)程里退出APP的時候荤傲。  我考慮如果說調(diào)用Appdelegate里的方法的話只有

1.是100%可以的垮耳。
2.過一會肯定就停止方法。
3.壓根就不會再調(diào)用遂黍。

所有推翻我之前的想法终佛,不用考慮了,所以只能在推送上做手腳雾家。進(jìn)入正題铃彰,我們先快速的集成一下第三方推送,我用的是友盟的芯咧。按照文檔慢慢的來肯定沒毛病牙捉。
1.下載 http://dev.umeng.com/push/ios/integration 下載SDK竹揍,只選擇裝有.a和UMessage.h的文件夾。導(dǎo)入到你的項(xiàng)目里
2.配置需要用的文件系統(tǒng)庫等鹃共。
3.在Capabilities里打開Push Notification(非常重要9碛丁)
4.正常的填寫需要的內(nèi)容

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{ 

//初始化方法,也可以使用(void)startWithAppkey:(NSString *)appKey launchOptions:(NSDictionary * )launchOptions httpsenable:(BOOL)value;這個方法,方便設(shè)置https請求霜浴。

    [UMessage startWithAppkey:@"your appkey" launchOptions:launchOptions];

    [UMessage setLogEnabled:YES];
    //注冊通知晶衷,如果要使用category的自定義策略,可以參考demo中的代碼阴孟。
    [UMessage registerForRemoteNotifications];

    //iOS10必須加下面這段代碼晌纫。
    UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
    center.delegate=self;
    UNAuthorizationOptions types10=UNAuthorizationOptionBadge|  UNAuthorizationOptionAlert|UNAuthorizationOptionSound;
    [center requestAuthorizationWithOptions:types10     completionHandler:^(BOOL granted, NSError * _Nullable error) {
    if (granted) {
        //點(diǎn)擊允許
        //這里可以添加一些自己的邏輯
    } else {
        //點(diǎn)擊不允許
        //這里可以添加一些自己的邏輯
    }
}];

//打開日志,方便調(diào)試
[UMessage setLogEnabled:YES];
}

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
    // 1.2.7版本開始不需要用戶再手動注冊devicetoken永丝,SDK會自動注冊
    //[UMessage registerDeviceToken:deviceToken];
    //不需要手動注冊锹漱,但是下面方法可以直接獲取你手機(jī)的devicetoken
    NSLog(@"%@",[[[[deviceToken description] stringByReplacingOccurrencesOfString: @"<" withString: @""]
                  stringByReplacingOccurrencesOfString: @">" withString: @""]
                 stringByReplacingOccurrencesOfString: @" " withString: @""]);

}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    //關(guān)閉友盟自帶的彈出框
    [UMessage setAutoAlert:NO];
    [UMessage didReceiveRemoteNotification:userInfo];
    //    self.userInfo = userInfo;
}


//iOS10新增:處理前臺收到通知的代理方法
-(void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler{
    NSDictionary * userInfo = notification.request.content.userInfo;
    if([notification.request.trigger isKindOfClass:[UNPushNotificationTrigger class]]) {
        //應(yīng)用處于前臺時的遠(yuǎn)程推送接受
        //關(guān)閉友盟自帶的彈出框
        [UMessage setAutoAlert:NO];
        //必須加這句代碼
        [UMessage didReceiveRemoteNotification:userInfo];
        
    }else{
        //應(yīng)用處于前臺時的本地推送接受
    }
    //當(dāng)應(yīng)用處于前臺時提示設(shè)置,需要哪個可以設(shè)置哪一個
    completionHandler(UNNotificationPresentationOptionSound|UNNotificationPresentationOptionBadge|UNNotificationPresentationOptionAlert);
}

//iOS10新增:處理后臺點(diǎn)擊通知的代理方法
-(void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler{
    NSDictionary * userInfo = response.notification.request.content.userInfo;
    if([response.notification.request.trigger isKindOfClass:[UNPushNotificationTrigger class]]) {
        //應(yīng)用處于后臺時的遠(yuǎn)程推送接受
        //必須加這句代碼
        [UMessage didReceiveRemoteNotification:userInfo];
        
    }else{
        //應(yīng)用處于后臺時的本地推送接受
    }
    
}
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
    //如果沒有獲得devicetoken的話一定會走進(jìn)這個方法里慕嚷,如果報錯內(nèi)容是3001哥牍,是因?yàn)槟愕腃apabilities里打開Push Notification 沒有打開。

    NSString *error_str = [NSString stringWithFormat: @"%@", error];
    NSLog(@"Failed to get token, error:%@", error_str);

}

以上全部在appdeleagte里實(shí)現(xiàn)就可以了喝检,然后關(guān)于appkey嗅辣,去友盟里創(chuàng)建一個。創(chuàng)建以后如下圖一樣


7051620F-1E4D-450A-B87A-0B2B0B566F1D.png

這個是創(chuàng)建以后的挠说,關(guān)于推送需要兩個證書:
1.開發(fā)證書(只用來內(nèi)部測試推送)
2.生產(chǎn)證書(上架以后使用的推送證書)
關(guān)于證書的東西我就不多說了澡谭,網(wǎng)上一堆如何創(chuàng)建打包p.12格式文件。自己看看吧损俭。

95D1ED5F-5CE0-4F70-80B4-77B55E02CEE9.png

還沒上架的話就別著急創(chuàng)建生產(chǎn)證書了蛙奖,就開發(fā)證書就可以了。進(jìn)入測試模式選擇添加測試信息杆兵。

進(jìn)入進(jìn)來以后你會發(fā)現(xiàn)有很多信息可以填寫雁仲,什么消息描述啊,主標(biāo)題琐脏,副標(biāo)題伯顶,內(nèi)容。這個隨便寫骆膝。 內(nèi)容鏈接也不需要哦

D984D238-E6B1-4F72-864E-440F75B5C859.png

這里有一個devicetoken祭衩,之前在Appdelegate里就已經(jīng)獲取了。直接賦值粘貼進(jìn)來就行了阅签。然后點(diǎn)擊發(fā)送掐暮,就能收到推送!

-----------------------------我是分割線------------------------------

以上便是推送集成政钟,超級快路克。五分鐘搞定樟结。 接下來是更換鈴聲了。
我也沒啥好的素材精算,只能從網(wǎng)上找一找瓢宦。http://www.huiyi8.com/tishiyin/
隨便選一首。然后點(diǎn)擊進(jìn)去進(jìn)入下載

9F9480D8-B56C-4BF7-9136-377015883BCA.png

然后選擇MP3格式灰羽,你會發(fā)現(xiàn)你進(jìn)入到這個頁面驮履。


E28DFF7E-F9F0-4D91-8EE0-7A23AC8B657C.png

不用下載,保存一下鏈接地址廉嚼。
http://data3.huiyi8.com/2015/dqd/07/31/4.mp3 (這個是我自己找的)

然后咱們?nèi)マD(zhuǎn)換類型玫镐,我在此強(qiáng)調(diào)!5≡搿恐似!非常強(qiáng)調(diào)!0睢矫夷!嚴(yán)重強(qiáng)調(diào)!1锘薄口四!蘋果只支持四種格式!G芈!
Linear PCM治笨、MA4 (IMA/ADPCM)驳概、μLaw、aLaw
必須是這4種格式之一 ?趵怠K秤帧!5确酢(非常重要V烧铡!)

這個非常重要俯萌! 我們剛才的是mp3不是嗎果录? 所以我們需要轉(zhuǎn)碼,什么類型好轉(zhuǎn)呢咐熙,就是MA4弱恒, 這是蘋果官網(wǎng)上寫的,但也叫M4A棋恼。我也有在線轉(zhuǎn)換的鏈接返弹!
http://cn.office-converter.com/Online-Audio-Converter

5E0D7709-F7E0-4560-AC81-6050FF621D79.png

這個就可以轉(zhuǎn)碼锈玉!我們進(jìn)去轉(zhuǎn)碼一下!

B1F9BA6A-4C7E-46B8-8D7A-B51AF8664934.png

最上面不要用义起,因?yàn)槟戕D(zhuǎn)出來的是html格式的拉背,亂碼,毫無任何卵用默终。
用下面的網(wǎng)址轉(zhuǎn)碼椅棺。

63A1C8DF-BAC2-460B-AF37-4797D4104A5B.png

轉(zhuǎn)碼的下載一點(diǎn)擊就變成下面這個樣子?

3CAFC8DB-D233-4D4E-B425-A3025FC14E19.png

這個是正常的穷蛹,然后復(fù)制網(wǎng)址到迅雷里下載就好啦土陪!

9C30207E-CC6D-46B7-A2C0-BE79F9A9618F.png

然后這個拖到桌面咯,然后拉到我們需要開發(fā)的項(xiàng)目里咯肴熏。
然后步驟已經(jīng)快完成咯鬼雀,記住項(xiàng)目里也好下載也好格式都是m4a

1EF10201-AB56-4EE4-A00F-8EB7CB05846E.png

然后我們再回到友盟的后臺端進(jìn)行推送,不過這次要加一個步驟咯蛙吏,那就添加我們的這個音樂名字源哩。 如下


0D20B960-3EF8-4831-AC19-D458A4C5B22A.png

也就多了一個步驟那就是添加音樂名,然后提交鸦做,就可以推送了~~
這個是為了測試而已励烦,但真正名字是由服務(wù)器傳到他們的第三方平臺里的。

http://dev.umeng.com/push/ios/api-doc

這個就是后端的網(wǎng)址泼诱。啊哈哈哈哈坛掠,就這么簡單!只有做完才覺得如此的簡單治筒!

看在我花了這么久的份上屉栓,點(diǎn)贊關(guān)注我哦~

若是有還不懂的地方可以加我的
QQ:1119718338
QQ群:622177838

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市耸袜,隨后出現(xiàn)的幾起案子友多,更是在濱河造成了極大的恐慌,老刑警劉巖堤框,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件域滥,死亡現(xiàn)場離奇詭異,居然都是意外死亡蜈抓,警方通過查閱死者的電腦和手機(jī)启绰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沟使,“玉大人酬土,你說我怎么就攤上這事「翊” “怎么了撤缴?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵刹枉,是天一觀的道長。 經(jīng)常有香客問我屈呕,道長微宝,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任虎眨,我火速辦了婚禮蟋软,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嗽桩。我一直安慰自己岳守,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布碌冶。 她就那樣靜靜地躺著湿痢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扑庞。 梳的紋絲不亂的頭發(fā)上譬重,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機(jī)與錄音罐氨,去河邊找鬼臀规。 笑死,一個胖子當(dāng)著我的面吹牛栅隐,可吹牛的內(nèi)容都是我干的塔嬉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼租悄,長吁一口氣:“原來是場噩夢啊……” “哼谨究!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起恰矩,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎憎蛤,沒想到半個月后外傅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡俩檬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年萎胰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片棚辽。...
    茶點(diǎn)故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡技竟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出屈藐,到底是詐尸還是另有隱情榔组,我是刑警寧澤熙尉,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站搓扯,受9級特大地震影響检痰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜锨推,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一铅歼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧换可,春花似錦椎椰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至洞渔,卻和暖如春套媚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背磁椒。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工堤瘤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人浆熔。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓本辐,卻偏偏與公主長得像,于是被迫代替她去往敵國和親医增。 傳聞我的和親對象是個殘疾皇子慎皱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評論 2 354

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