Как получить уникальный идентификатор пользователя One Signal в Mobile?

Я разрабатываю приложение для ресторана. Я использую One Signal в своем приложении для отправки уведомлений. Здесь, когда я размещаю заказ, мне нужно отправить уникальный идентификатор одного сигнала для конкретного пользователя для получения уведомления о том, что "Ваш заказ успешно установлен... Он находится в состоянии" Прогресс ". Подождите". Для этого мне нужен пользовательский идентификатор пользователя One Signal. Как я могу его получить? Я новичок в One Signal. Пожалуйста, помогите мне.

Ответ 1

Получил уникальный идентификатор OneSignal, используя следующий код, который находится на официальном сайте 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);

        }
    });

См:

Получение кода на официальном сайте

Ответ 2

Вышеупомянутое решение для android устарело Использование:

OSPermissionSubscriptionState status = OneSignal.getPermissionSubscriptionState();
status.getSubscriptionStatus().getUserId();

Ответ 3

для iOS:

let status: OSPermissionSubscriptionState = OneSignal.getPermissionSubscriptionState()
    if let id = status.subscriptionStatus.userId {
    oneSignalPlayer_ID = id
    print("\nOneSignal UserId:", id)
}

Ответ 4

Для android вы можете получить идентификаторы userID akaIDID, начиная с версии 3.5. 0+ собственного SDK для Android, используя метод getPermissionSubscriptionState и addSubscriptionObserver.

Дополнительные сведения об использовании getPermissionSubscriptionState см. В: https://documentation.onesignal.com/docs/android-native-sdk#section--getpermissionsubscriptionstate-

Для добавления наблюдателей подписки см.: https://documentation.onesignal.com/docs/android-native-sdk#section--addsubscriptionobserver-

В Github есть пример Native Android: https://github.com/OneSignal/OneSignal-Android-SDK

Он находится в папке "Примеры" с надписью "AndroidStudio"

Для iOS вы можете получить идентификаторы player, начиная с версии 2.5.0 собственного SDK для iOS, используя метод getPermissionSubscriptionState и addSubscriptionObserver.

Подробнее об использовании getPermissionSubscriptionState см.: Https://documentation.onesignal.com/docs/ios-native-sdk#section--getpermissionsubscriptionstate-

Для добавления наблюдателей подписки см.: https://documentation.onesignal.com/docs/ios-native-sdk#section--addsubscriptionobserver-

В Swift on Github есть проект примера iOS, который может быть полезен: https://github.com/OneSignal/OneSignal-iOS-SDK/tree/master/Examples

Ответ 5

@Lakshmi Reddy

в iOS вы можете сделать, как показано ниже:

OSPermissionSubscriptionState* status = [OneSignal getPermissionSubscriptionState];
    status.permissionStatus.hasPrompted
    status.permissionStatus.status
//                                                            <- OneSignal idsAvailable is deprecated.it the alternative
    status.subscriptionStatus.subscribed
    status.subscriptionStatus.userSubscriptionSetting
    status.subscriptionStatus.userId
    status.subscriptionStatus.pushToken
NSLog(@"Push Token - %@",status.subscriptionStatus.pushToken);
NSLog(@"Push User ID - %@",status.subscriptionStatus.userId);