現在的推送用的越來越頻繁,幾乎每個應用都開始用到了。其實又有幾個用戶會去看推送消息呢?沒辦法,產品經理最大啊,只是苦了我們這一幫程序員啊!閒話少說,進入正題。兄弟我用的是極光推送,自然是以極光推送為例了。
現在點擊推送消息,有兩種跳轉方式: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;
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。