Ios 登录后向OneSignal发送标记

Ios 登录后向OneSignal发送标记,ios,push-notification,onesignal,Ios,Push Notification,Onesignal,我想在特定用户登录后将标签发送给他/她,以便他/她可以接收通知。只有已登录的用户才会收到通知。 当他/她注销时,我将删除他/她的标签。 我该怎么做 AppDelegate中的我的代码: let oneSignal: OneSignal = OneSignal(launchOptions: launchOptions, appId: "<my-app-id>") { (message, additionalData, isActive) in if (

我想在特定用户登录后将标签发送给他/她,以便他/她可以接收通知。只有已登录的用户才会收到通知。 当他/她注销时,我将删除他/她的标签。 我该怎么做

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();
        }
    }

我的appDelegate中的代码工作正常,我的用户已经收到通知。但即使未登录,它们也可以接收通知。

您需要在LogInViewController中使用来自AppDelegate的同一个oneSignal实例。您可以在类级别将oneSignal设置为静态,以便在两个类之间共享

要删除标记,可以调用
oneSignal.deleteTag(“用户名”)

更新:
从iOS 2.0 SDK开始,
OneSignal
类上的所有方法现在都是静态的。

Objective-C:

//发送标记:登录后
[OneSignal sendTag:@“键”值:@“值”];
//删除标签:注销后
[OneSignal deleteTag:@“键”];
Swift:

//发送标记:登录后
OneSignal.sendTag(“key”,value:“value”)//用于在OneSignal中插入标记的发送
//删除标签:注销后
OneSignal.deleteTag(“key”)//从OneSignal数据库中删除该特定标记

你能告诉我如何使用sendtag吗?我仍然不能使用sendtag。
let oneSignal = OneSignal()
oneSignal.sendTag("username", value: self.usernameTextField.text)