【发布时间】:2016-08-03 05:43:21
【问题描述】:
我的推送通知在正常情况下正常工作,但我对以下情况有疑问:
1)当我的应用从后台移除并获得通知并点击应用图标时,我想推送视图控制器并在该视图控制器中显示有效负载数据。
2)当我的应用程序在后台并获得通知并点击应用程序图标时,我想推送视图控制器并在该视图控制器中显示有效负载数据。
以下是我的用户信息
{
aps = {
alert = "Call from rohan panchal";
appointmentId = 220;
badge = 0;
"call_token" = "T1==cGFydG5lcl9pZD00NTI1ODY1MiZzaWc9MzM1MmM0M2E2MjkwN2JiYWMzNjgyNjk0MjFlZWMyNWEzNTZmZmM3MjpzZXNzaW9uX2lkPTJfTVg0ME5USTFPRFkxTW41LU1UUTNNREl3TVRBd01qVXdOWDV3WXpCRFMyWTRlR2xhUWpGdU1YbFpNamhvV0hoNFVHTi1VSDQmY3JlYXRlX3RpbWU9MTQ3MDIwMTAwMiZyb2xlPXB1Ymxpc2hlciZub25jZT0xNDcwMjAxMDAyLjUyMDM0NDAzNjQzMjMmZXhwaXJlX3RpbWU9MTQ3MDgwNTgwMg==";
doctorId = 238;
"doctor_country" = US;
"doctor_name" = "John smith";
patientId = 239;
"patient_country" = US;
"patient_name" = "Lottry patel";
sessionId = "2_MX40NTI1ODY1Mn5-MTQ3MDIwMTAwMjUwNX5wYzBDS2Y4eGlaQjFuMXlZMjhoWHh4UGN-UH4";
sound = default;
};
}
按照我的代码。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// when i remove app from background & click on notification then following code run.
NSDictionary *notificationPayload = launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey];
if(notificationPayload)
{
NSLog(@"%@",notificationPayload);
WebViewController *DashBoard = [[WebViewController alloc]initWithNibName:@"WebViewController" bundle:nil];
self.navcntrl=[[UINavigationController alloc]initWithRootViewController:DashBoard];
}
else
{
DoctorMenuViewController *DoctorVC = [[DoctorMenuViewController alloc]initWithNibName:@"DoctorMenuViewController" bundle:nil];
self.navcntrl=[[UINavigationController alloc]initWithRootViewController:DoctorVC];
}
}
当我收到通知时,会调用以下方法。
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
NSLog(@"%@",userInfo);
WebViewController *DashBoard = [[WebViewController alloc]initWithNibName:@"WebViewController" bundle:nil];
[self.navcntrl pushViewController:DashBoard animated:YES];
}
请帮助。任何帮助表示赞赏。
【问题讨论】:
-
请分享您的用户信息,基本上您必须与 webAPI 人员核对他们发送的用户信息,然后使用导航控制器导航到所需的控制器
-
@gurmandeep 请检查我的用户信息。我已经更新了我的问题。
-
您需要哪个字段,以及您要在哪个控制器上导航。捡起来 -(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { UIApplicationState state = [[UIApplication sharedApplication] applicationState]; if (state == UIApplicationStateBackground || state == UIApplicationStateInactive){ //当你的应用在后台时收到通知 //打开你期望的视图控制器 }else if(state == UIApplicationStateActive){ //当你的应用程序在后台时收到通知应用在前台 // 什么都不做 } }
-
你能在 nswer 上发帖吗
-
当然,我也觉得评论里搞砸了。
标签: ios objective-c swift remote-notifications