问题 登录后将标签发送到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中的代码工作正常,我的用户已收到通知。但即使他们没有登录,他们也可以收到通知。


9838
2018-05-15 02:44


起源

你能告诉我如何使用sendtag吗?我还是不能使用sendtag。 - Thiha Aung


答案:


您需要在LogInViewController中使用AppDelegate中的相同oneSignal实例。您可以在类级别创建oneSignal静态,以便可以在两个类之间共享它。

要删除您可以调用的标记 oneSignal.deleteTag("username")

更新: 截至iOS 2.0 SDK上的所有方法 OneSignal class现在是静态的。


9
2018-05-15 22:08





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

1
2018-04-25 04:54