2016-04-02 6 views
16

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

ответ

30

Получил уникальный идентификатор 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); 

     } 
    }); 

См:

Getting code in Official Site

+0

Я был пытаясь сделать это на iOS, и это объясняет, как это сделать. Его та же логика в iOS – blackmoon

+0

Извините. Идея для IOS ji @blackmoon –

+0

Любое решение для iOS @blackmon –

2

для IOS:

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

@Lakshmi Reddy

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

OSPermissionSubscriptionState* status = [OneSignal getPermissionSubscriptionState]; 
    status.permissionStatus.hasPrompted 
    status.permissionStatus.status 
//               <- OneSignal idsAvailable is deprecated.it's 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); 
1

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

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

Для Android, вы можете получить UserIds ака playerIDs начиная с версии нативного SDK Android 3.5.0+ с помощью getPermissionSubscriptionState метод и addSubscriptionObserver.

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

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

Существует пример Native Android на Github: https://github.com/OneSignal/OneSignal-Android-SDK

Это в примерах папку с надписью AndroidStudio

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

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

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

Существует проект с IOS Пример в Swift на Github, которые могли бы иметь некоторую помощь: https://github.com/OneSignal/OneSignal-iOS-SDK/tree/master/Examples