Отправить тег OneSignal после входа в систему
Я хочу отправить тег конкретному пользователю после входа в систему, чтобы он мог получать уведомления. Уведомления будут получать только зарегистрированные пользователи. Когда он / она выйдет из системы, я удалю его / ее тег. Как я могу это сделать?
мой код в AppDelegate:
let oneSignal: OneSignal = OneSignal(launchOptions: launchOptions, appId: "<my-app-id>") {
(message, additionalData, isActive) in
if (additionalData != nil) {
NSLog("APP LOG ADDITIONALDATA: %@", additionalData);
let displayMessage: NSString = NSString(format:"NotificationMessage:%@", message);
var messageTitle: NSString = "";
if (additionalData["discount"] != nil) {
messageTitle = additionalData["discount"] as String
}
else if (additionalData["bonusCredits"] != nil) {
messageTitle = additionalData["bonusCredits"] as String;
}
else if (additionalData["actionSelected"] != nil) {
messageTitle = NSString(format:"Pressed ButtonId:%@", additionalData["actionSelected"] as String);
}
var alertView: UIAlertView = UIAlertView(title: messageTitle,
message:displayMessage,
delegate:self,
cancelButtonTitle:"Close");
alertView.show();
}
else if (isActive) {
var alertView: UIAlertView = UIAlertView(title:"OneSignal Message",
message:message,
delegate:self,
cancelButtonTitle:"Close");
alertView.show();
}
}
мой код в моем LogInViewController:
let oneSignal = OneSignal()
oneSignal.sendTag("username", value: self.usernameTextField.text)
код в моем appDelegate работает нормально, мои пользователи уже получают уведомления. Но они могут получать уведомления, даже если они не зарегистрированный.
2 ответов
вам нужно использовать тот же экземпляр oneSignal из AppDelegate в вашем LogInViewController. Вы можете сделать OneSignal статическим на уровне класса, чтобы его можно было разделить между обоими классами.
чтобы удалить тег, вы можете вызвать oneSignal.deleteTag("username")
обновление:
Начиная с iOS 2.0 SDK все методы на OneSignal
класса статические.
Send tag: After login
[oneSignal sendTag:@"key" value:@"value"];
deletetag: After logout
[oneSignal deleteTag:@"key"];
Update
Onesignal.sendtag(); //for sending that is inserting tag in one signal
Onesignal.deteletag(); //delete that specific tag from one signal db