推送分2种:一种是程序在后台,一种是是未启动app.
程序在后台的推送是大家都熟悉的。现在我说说第二种。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
首先在这里调用推送的处理方法。
-(void)getGTpushWithOptions:(NSDictionary )launchOptions
{
NSDictionary userInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (userInfo)
{
[self getGTpushWithInfo:userInfo];
}
}
而且要在 setRootViewcontroller之后。因为部分rootViewcontroller尚未加载完成。
还有一个就是引导页的时候跳转到播放页面,出现了播放页的声音。所以,需要将跳转的动作延迟。
推送的逻辑就是一定要popRootViewContoller.我的做法就是在rootVc里加一个变量,然后在disappea的时候将变量set nil.或者 UIViewController *viewContoller =[[MainViewController singleton].contentController.viewControllers lastObject];
判断最上面的是否是rootVc.不是的话就popToRootViewContoller.
如何在app未启动的时候看是否收到推送消息呢?
进入window-device看日志,可以打印推送的消息。