今天博主有一個集成信鴿推送的需求,遇到了一些困難點,在此和大家分享,希望能夠共同進步.
推送分為用戶推送,本地推送,遠程推送和地理位置推送,其中最常用的就是遠程推送,遠程推送可以直接編寫代碼實現功能,也可以使用第三方的SDK,常用的第三方SDK有信鴿推送,極光推送和個推.今天和大家分享一下集成信鴿推送的過程.
1.下載騰訊信鴿SDK
它下面有兩個版本:基礎版和PRo版
下載地址:http://xg.QQ.com/xg/ctr_index/download
注:信鴿ProiOS SDK是信鴿iOSSDK的加強版,整合了數據分析能力,沒有數據分析需求使用基礎版即可,博主使用的就是基礎版
2.創建應用,申請appID
3.進行應用配置(點擊“應用配置”)
4.驗證開發證書和生產證書
配置iOS證書的具體流程請參考:http://developer.xg.qq.com/index.php/IOS_證書設置指南
注:開發證書和生產證書均為pem類型的文件,證書密碼為生成pem類型文件過程中所設置的密碼
5.點擊“測試設備”,增加測試設備,以便后期開發中進行測試調試
其中設備Token的獲取方式:在獲取deviceToken的方法中,注冊設備,打印Token
6.添加以下引用庫
CFNetwork.framework
SystemConfiguration.framework
CoreTelephony.framework
Security.framework
libz.dylib
libsqlite.dylib
libXG-SDK.a
7.具體代碼可以直接復制信鴿推送的官方demo,注釋相當詳細.
這里重點和大家分享一下處理推送回調的問題:
②.當程序處于前臺工作時,這時候若收到消息推送,會調用- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo這個方法
③.當程序處于后臺運行時,這時候若收到消息推送,如果點擊消息或者點擊消息圖標時,也會調用- (void)application:(UIApplication*)application
didReceiveRemoteNotification:(NSDictionary *)userInfo這個方法
④.當程序處于后臺運行時,這時候若收到消息推送,如果點擊桌面應用圖標,則不會調用didFinishLaunchingWithOptions和didReceiveRemoteNotification方法,所以無法獲取消息
第一種情況:
if (launchOptions) {
NSDictionary* pushNotificationKey = [launchOptionsobjectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (pushNotificationKey) {
//這里定義自己的處理方式
}
}
第二、三種情況:
if (application.applicationState == UIApplicationStateActive) {
//第二種情況
if ([[userInfo objectForKey:@"aps"] objectForKey:@"alert"]!=NULL) {
[WLHelper showAlert:@"推送消息" msg:[[userInfo objectForKey:@"aps"] objectForKey:@"alert"]];
}
} else {
//第三種情況
//這里定義自己的處理方式
}
第四種情況:目前還沒想好,望各位看官集思廣益,不勝感激
http://blog.csdn.net/apple_app/article/details/39228221?plg_nld=1&plg_uin=1&plg_auth=1&plg_nld=1&plg_usr=1&plg_vkey=1&plg_dev=1
http://www.tuicool.com/articles/qqm6rq?plg_nld=1&plg_uin=1&plg_auth=1&plg_nld=1&plg_usr=1&plg_vkey=1&plg_dev=1
新聞熱點
疑難解答