iOS用户点击推送消息进入应用后,如何跳转到对应的ViewController
2015-03-04 14:35
946 查看
当iOS用户通过点击推送消息进入应用时,在AppDelegate的
方法中,我们可以通过
获得推送的userinfo.
但是didFinishLaunchingWithOptions会比MainViewController的viewDidLoad先执行,此时肯定不能present一个新的View,应该是让MainViewController启动后再检查是否收到了推送,然后打开对应的视图
-------------------------------------
当用户通过点击通知消息进入应用时
launchOptions中会有推送消息的userInfo信息,此时我们可以通过
获得推送消息内容。如果remoteNotification不为空,则说明用户通过推送消息进入,那么可以声明一个属性
用于标识用户是否通过点击通知消息进入本应用。
此时,
一定会被调用,iOS7可以使用
因为此方法的调用时,MainViewController已经被初始化,所以我们已经可以在MainViewController注册推送消息的监听,用于展示对应的视图,如下:
所以在AppDelegate的didReceiveRemoteNotification中可以通过判断isLaunchedByNotification来通知不同的展示方法。
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
方法中,我们可以通过
[launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
获得推送的userinfo.
但是didFinishLaunchingWithOptions会比MainViewController的viewDidLoad先执行,此时肯定不能present一个新的View,应该是让MainViewController启动后再检查是否收到了推送,然后打开对应的视图
-------------------------------------
当用户通过点击通知消息进入应用时
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
launchOptions中会有推送消息的userInfo信息,此时我们可以通过
NSDictionary* remoteNotification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
获得推送消息内容。如果remoteNotification不为空,则说明用户通过推送消息进入,那么可以声明一个属性
@property (nonatomic) BOOL isLaunchedByNotification;
用于标识用户是否通过点击通知消息进入本应用。
此时,
- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo
一定会被调用,iOS7可以使用
- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
因为此方法的调用时,MainViewController已经被初始化,所以我们已经可以在MainViewController注册推送消息的监听,用于展示对应的视图,如下:
//订阅展示视图消息,将直接打开某个分支视图 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(presentView:) name:@"PresentView" object:nil]; //弹出消息框提示用户有订阅通知消息。主要用于用户在使用应用时,弹出提示框 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showNotification:) name:@"Notification" object:nil];
所以在AppDelegate的didReceiveRemoteNotification中可以通过判断isLaunchedByNotification来通知不同的展示方法。
相关文章推荐
- iOS用户点击推送消息进入应用后,如何跳转到对应的ViewController
- iOS 点击远程通知消息,如何跳转到指定页面(控制器)
- iOS极光推送 点击推送消息跳转页面
- iOS极光推送 点击推送消息跳转页面
- iOS极光推送 点击推送消息跳转页面
- iOS极光推送 点击推送消息跳转页面
- iOS点击推送消息跳到应用指定页面方法
- iOS远程推送点击消息跳转到指定页面
- iOS点击推送消息跳转到指定页面
- iOS极光推送 点击推送消息跳转页面
- iOS如何显示桌面应用图标上的推送消息数(大神勿进)
- ios推送 程序未启动,收到推送消息,打开应用后跳转到相应的活动页面的代码。
- iOS极光推送 点击推送消息跳转页面
- iOS-点击推送消息跳转处理
- 【iOS开发】iOS极光推送 点击推送消息跳转页面
- iOS极光推送 点击推送消息跳转页面
- iOS-点击推送消息跳转处理
- 第三方推送过来的消息,用户点击如何处理
- iOS 点击推送消息跳到应用指定页面的实例
- iOS极光推送 点击推送消息跳转页面