現在的推送用的越來越頻繁,幾乎每個應用都開始用到了。其實又有幾個用戶會去看推送消息呢?沒辦法,產品經理最大啊,只是苦了我們這一幫程序員啊!閒話少說,進入正題。兄弟我用的是極光推送,自然是以極光推送為例了。
現在點擊推送消息,有兩種跳轉方式:1.打開應用,跳轉到應用首頁;2.打開應用,跳轉到指定頁面。
第一種,你什麼都不用設置,只要注冊極光應用就可以。這裡就不寫怎麼注冊極光應用了,可以參考官方文檔,寫的很詳細。
第二種,重頭戲來了。
// APP未運行時獲取通知的內容 remoteNotification就是你們服務器發送的推送的內容 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ NSDictionary *remoteNotification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; // 如果remoteNotification不為空,代表有推送發過來,以下類似 if (remoteNotification) { // 把應用右上角的圖標去掉 這個最好寫上,要不然強迫症會瘋的 [UIApplication sharedApplication].applicationIconBadgeNumber = 0; // 發通知 [self performSelector:@selector(發送通知的方法,以下相同)withObject:remoteNotification afterDelay:1]; } } // 程序運行時接收推送 userInfo就是你們服務器發送的推送的內容 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { // Required [APService handleRemoteNotification:userInfo]; if (userInfo) { [UIApplication sharedApplication].applicationIconBadgeNumber = 0; // 發通知, 通知內容就是userInfo 你可以打印一下 } } - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { // IOS 7 Support Required [APService handleRemoteNotification:userInfo]; completionHandler(UIBackgroundFetchResultNewData); if (userInfo){ // 發通知 } }
以上的三個方法,可以讓你接收到服務器發過來的推送內容,在主線程中發通知,否則接收不到。如果你想讓應用跳轉到首頁的詳情頁
- (void)viewDidLoad{ // 添加觀察者 讓程序執行跳轉到詳情頁的方法 }
如果你想讓應用跳轉到第三頁的詳情頁 在發送通知的方法中加上:
_tabBarViewController.selectedIndex = 2;
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。