2015-02-23 67 views
2

我知道要註冊Parse.com推送通知,我必須將它全部設置在appdelegate文件中。但我想知道是否可以在用戶登錄ViewController類後覆蓋頻道並註冊到多個頻道。Parse.com在用戶登錄後註冊推送通知

+0

對此有什麼好運? – 2015-07-28 17:30:41

回答

0

您應該可以通過執行以下操作。

if(![currentInstallation channels]) { 

    [currentInstallation setChannels:@[@"WHATEVER1", @" WHATEVER2"]]; 
    NSLog(@"Set Channel"); 
} else { 

[currentInstall addUniqueObject:@"objectone" forKey:@"channels"]; 
[currentInstall addUniqueObject:@"objecttwo" forKey:@"channels"]; 
} [currentInstall saveInBackgroundWithBlock:(BOOL succeeded, NSError *error) { 

if(!error){ 
    NSLog(@"subscribed user to both channels"); 
} else { 
    NSLog(@"error subscribing to both channels: %@", error); 
} 
}]; 
+0

我認爲你誤解了這個問題。他想知道他是否可以在AppDelegate文件以外的其他地方註冊頻道。即只有在用戶登錄後註冊頻道,而不是在應用程序啓動時註冊。 – 2015-07-28 17:30:30

0

您只需在應用程序中的任意位置運行UIApplication的共享實例,然後調用註冊方法即可。就像這樣:

let application = UIApplication.sharedApplication() 
    let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge], categories: nil) 
    application.registerUserNotificationSettings(settings) 
    application.registerForRemoteNotifications() 

這將顯示推送通知對話框,詢問是否要允許通知,然後撥打電話回任didFailToRegisterForRemoteNotificationsWithErrordidRegisterForRemoteNotificationsWithDeviceToken

適當應用的委託方法如果您正在測試上一個模擬器,而不是一個實際的設備didFailToRegisterForRemoteNotificationsWithError將始終被調用。