OneSignal有非常好的文档。
对于Android,您可以使用idsAvailable
方法获取userID和registrationID。
userID(也称为playerID)是格式化的OneSignal UUID字符串。(每个设备每个应用程序唯一)
registrationID是由Google分配的标识符(每个设备每个应用程序唯一,并在重新安装时更改)。
对于iOS,您可以通过相同的方式获取userIDs,但在本地iOS SDK的2.5.0+版本中添加了getPermissionSubscriptionState方法和addSubscriptionObserver。
您可以按以下方式获取Swift的OSPermissionSubscriptionState:
let status: OSPermissionSubscriptionState = OneSignal.getPermissionSubscriptionState()
let hasPrompted = status.permissionStatus.hasPrompted
print("hasPrompted = \(hasPrompted)")
let userStatus = status.permissionStatus.status
print("userStatus = \(userStatus)")
let isSubscribed = status.subscriptionStatus.subscribed
print("isSubscribed = \(isSubscribed)")
let userSubscriptionSetting = status.subscriptionStatus.userSubscriptionSetting
print("userSubscriptionSetting = \(userSubscriptionSetting)")
let userID = status.subscriptionStatus.userId
print("userID = \(userID)")
let pushToken = status.subscriptionStatus.pushToken
print("pushToken = \(pushToken)")
对于 Objective-C:
OSPermissionSubscriptionState* status = [OneSignal getPermissionSubscriptionState]
status.permissionStatus.hasPrompted
status.permissionStatus.status
status.subscriptionStatus.subscribed
status.subscriptionStatus.userSubscriptionSetting
status.subscriptionStatus.userId
status.subscriptionStatus.pushToken
那么你上面的代码现在看起来应该像这样:
let status: OSPermissionSubscriptionState = OneSignal.getPermissionSubscriptionState()
let userID = status.subscriptionStatus.userId
print("userID = \(userID)")
let pushToken = status.subscriptionStatus.pushToken
print("pushToken = \(pushToken)")
if pushToken != nil {
if let playerID = userID {
}
}