2017-07-15 3 views
0

プッシュ通知のトリガーにはいくつか問題があります。ユーザーが通知用のペイロードを持っている通知をタップすると、特定のVCを開く必要があります。アプリは、私がここでの問題を、このコードプッシュ通知によるSpicific ViewControllerの表示

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) { 

     if ((application.applicationState == .inactive || application.applicationState == .background)) { 

      //open specific VC depends on notification payload 
     } 
    } 

を使用している背景である場合を考えると起動する:1)私は新しいrootController 2を設定することにより、AppDelegateからVCを押してカント)私はAppDelegateのdidReceiveRemoteNotificationメソッドからこのコードを使用する必要があります

答えて

3

この回答を参照してください:How to make your push notification Open a certain view controller?

は、アプリが通知から開かれているかどうかを検出するためにAppDelegateにこのコードを使用します。アプリがアクティブになる前に、アプリ状態がUIApplicationStateInactiveのときに、初期VCを設定します。 VCを設定し、そのVC内のコンテンツを設定するコードを記述します。

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{ 

    if(application.applicationState == UIApplicationStateActive) { 

     //app is currently active, can update badges count here 

    } else if(application.applicationState == UIApplicationStateBackground){ 

     //app is in background, if content-available key of your notification is set to 1, poll to your backend to retrieve data and update your interface here 

    } else if(application.applicationState == UIApplicationStateInactive){ 

     //app is transitioning from background to foreground (user taps notification), do what you need when user taps here 

     self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds]; 

     UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 

     UIViewController *viewController = // determine the initial view controller here and instantiate it with [storyboard instantiateViewControllerWithIdentifier:<storyboard id>]; 

     self.window.rootViewController = viewController; 
     [self.window makeKeyAndVisible]; 

    } 

} 
+0

@sedq回答が助けになる場合は、回答を受け入れることができます。それは他人を助けるでしょう。 –

関連する問題