[swift]收到通知后我可以怎么有效载荷应用程序图标点击?

发布时间: 2017/3/6 23:19:13
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我推式通知工作正常正常情况下却问题与下列案件︰

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];


}

请帮助。任何帮助赞赏。

解决方法 1:

推送通知的有效载荷包括︰

警报-报警字符串和行动

徽章

声音

内容提供

内容可用的关键是一个新的功能,并使沉默推此密钥。

若要启用,也可以作为您的应用程序 UIBackgroundModes 此处所述添加远程千呼万唤。

这就是有效负载中的内容可以是︰

如果应用程序被暂停,该系统将使其背景

如果应用程序由用户被杀,什么也没有发生,和应用程序保持在不运行读取应用程序状态的变化。

一个潜在的是陷阱︰

启用内容可用 = 1。但是,它是错用内容可用禁用 = 0。若要禁用,你必须有效负载中删除键。

请使用此

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
    {
       if(application.applicationState == UIApplicationStateInactive) 
    {
           NSLog(@"Inactive");

       //do your things when you click on notification
    }
    else if (application.applicationState == UIApplicationStateBackground)
     {

                    NSLog(@"Background");


    }
      else if (application.applicationState == UIApplicationStateActive)
      {
      NSLog(@"Active");
      }
    }

有关详细信息,请阅读此链接http://samwize.com/2015/08/07/how-to-handle-remote-notification-with-background-mode-enabled/

赞助商