我正在开发一款餐厅应用。在我的应用程序中,我使用One Signal发送通知。当我下订单时,我需要发送一个特定用户的One Signal唯一标识符,以便接收成功下单的通知:“您的订单已成功下单...正在处理,请稍候”。为此,我需要该用户的One Signal用户ID。我怎样才能获取它呢?我是One Signal的新手。请帮助我。
我正在开发一款餐厅应用。在我的应用程序中,我使用One Signal发送通知。当我下订单时,我需要发送一个特定用户的One Signal唯一标识符,以便接收成功下单的通知:“您的订单已成功下单...正在处理,请稍候”。为此,我需要该用户的One Signal用户ID。我怎样才能获取它呢?我是One Signal的新手。请帮助我。
使用OneSignal官网提供的以下代码获取唯一标识符。
OneSignal.idsAvailable(new OneSignal.IdsAvailableHandler() {
@Override
public void idsAvailable(String userId, String registrationId) {
Log.d("debug", "User:" + userId);
if (registrationId != null)
Log.d("debug", "registrationId:" + registrationId);
}
});
参考:
上述代码已过时,请使用下面的代码。
String UUID = OneSignal.getPermissionSubscriptionState().getSubscriptionStatus().getUserId()
上述 Android 解决方案已被弃用。
请使用:
OSPermissionSubscriptionState status = OneSignal.getPermissionSubscriptionState();
status.getSubscriptionStatus().getUserId();
OneSignal.getPermissionSubscriptionState().getSubscriptionStatus().getUserId()
- Vahid Amiri安卓Java
String userId = OneSignal.getDeviceState().getUserId();
安卓 Kotlin
val oneSignalUserID = OneSignal.getDeviceState()!!.userId
iOS OneSignal 版本 3.6.0
guard let userID = OneSignal.getDeviceState().userId else { return }
iOS旧版OneSignal版本
let status: OSPermissionSubscriptionState = OneSignal.getPermissionSubscriptionState()
if let id = status.subscriptionStatus.userId {
oneSignalPlayer_ID = id
print("\nOneSignal UserId:", id)
}
了解有关使用getPermissionSubscriptionState的更多信息,请参见:https://documentation.onesignal.com/docs/ios-native-sdk#section--getpermissionsubscriptionstate-
要添加订阅观察者,请参见:https://documentation.onesignal.com/docs/ios-native-sdk#section--addsubscriptionobserver-
Github上有一个用Swift编写的iOS示例项目,可能会有所帮助:https://github.com/OneSignal/OneSignal-iOS-SDK/tree/master/Examples
对于iOS:
let status: OSPermissionSubscriptionState = OneSignal.getPermissionSubscriptionState()
if let id = status.subscriptionStatus.userId {
oneSignalPlayer_ID = id
print("\nOneSignal UserId:", id)
}
OneSignal.getUser().getPushSubscription().getId()
OneSignal.getUser().getPushSubscription().getToken()
针对iOS 15和截至OneSignal iOS SDK版本3.7.0
if let userId = OneSignal.getDeviceState().userId {
print("OneSignal User ID: \(userId)")
}
OneSignal 4.1 Android String playerId = OneSignal.getDeviceState().getUserId();
可以获取玩家ID。
import android.app.Application;
import com.onesignal.OneSignal;
public class ApplicationClass extends Application {
@Override
public void onCreate() {
super.onCreate();
// OneSignal Initialization
OneSignal.startInit(this)
.inFocusDisplaying(OneSignal.OSInFocusDisplayOption.Notification)
.unsubscribeWhenNotificationsAreDisabled(true)
.init();
String UUID = OneSignal.getPermissionSubscriptionState().getSubscriptionStatus().getUserId();
}
}
OneSignal.getDeviceState()
已被弃用。
要获取userId,请使用以下方法。User.pushSubscription.id
User.pushSubscription.token
OSPermissionSubscriptionState status = OneSignal.getPermissionSubscriptionState(); status.getSubscriptionStatus().getUserId();
该代码可用于获取用户订阅状态和用户 ID。 - Amjed Baig