推送分2種:一種是程序在后臺,一種是是未啟動app.
程序在后臺的推送是大家都熟悉的。現(xiàn)在我說說第二種。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
首先在這里調(diào)用推送的處理方法。
-(void)getGTpushWithOptions:(NSDictionary )launchOptions
{
NSDictionary userInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (userInfo)
{
[self getGTpushWithInfo:userInfo];
}
}
而且要在 setRootViewcontroller之后。因為部分rootViewcontroller尚未加載完成。
還有一個就是引導(dǎo)頁的時候跳轉(zhuǎn)到播放頁面,出現(xiàn)了播放頁的聲音。所以,需要將跳轉(zhuǎn)的動作延遲。
推送的邏輯就是一定要popRootViewContoller.我的做法就是在rootVc里加一個變量,然后在disappea的時候?qū)⒆兞縮et nil.或者 UIViewController *viewContoller =[[MainViewController singleton].contentController.viewControllers lastObject];
判斷最上面的是否是rootVc.不是的話就popToRootViewContoller.
如何在app未啟動的時候看是否收到推送消息呢?
進(jìn)入window-device看日志,可以打印推送的消息。