web-dev-qa-db-fra.com

Comment obtenir un identifiant unique One Signal dans Mobile?

Je développe une application de restaurant. J'utilise One Signal dans mon application pour envoyer des notifications. Ici, pendant que je passe la commande, je dois envoyer l'identifiant unique du signal correspondant à un utilisateur spécifique pour lui demander de recevoir une notification "Votre commande est passée avec succès ... elle est en cours. Veuillez patienter". Pour cela, j'ai besoin de l'identifiant utilisateur One Signal de l'utilisateur. Comment puis-je l'avoir? Je suis novice à One Signal. Aidez-moi, s'il vous plaît.

21
Parama Sudha

Vous avez l'identifiant unique de OneSignal en utilisant le code suivant qui se trouve sur le site officiel de 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);

        }
    });

Référer:

Obtenir le code sur le site officiel

40
Parama Sudha

La solution ci-dessus pour Android est obsolète Utilisez:

OSPermissionSubscriptionState status = OneSignal.getPermissionSubscriptionState();
status.getSubscriptionStatus().getUserId();
12
Amjed Baig

Pour Android, vous pouvez obtenir les ID utilisateur, c’est-à-dire les ID joueur, à partir de la version 3.5.0+ du SDK Android natif à l’aide de la méthode getPermissionSubscriptionState et de la méthode addSubscriptionObserver.

Pour plus d'informations sur l'utilisation de getPermissionSubscriptionState, voir: https://documentation.onesignal.com/docs/Android-native-sdk#section--getpermissionsubscriptionstate-

Pour ajouter des observateurs d'abonnement, voir: https://documentation.onesignal.com/docs/Android-native-sdk#section--addsubscriptionobserver-

Il existe un exemple Android natif sur Github: https://github.com/OneSignal/OneSignal-Android-SDK

Il se trouve dans le dossier Exemples intitulé AndroidStudio.

Pour iOS, vous pouvez obtenir les ID de lecteur à partir de la version 2.5.0 du SDK iOS natif à l'aide de la méthode getPermissionSubscriptionState et de addSubscriptionObserver.

Pour plus d'informations sur l'utilisation de getPermissionSubscriptionState, voir: https://documentation.onesignal.com/docs/ios-native-sdk#section--getpermissionsubscriptionstate-

Pour ajouter des observateurs d'abonnement, voir: https://documentation.onesignal.com/docs/ios-native-sdk#section--addsubscriptionobserver-

Il existe un exemple de projet iOS dans Swift sur Github qui pourrait vous être utile: https://github.com/OneSignal/OneSignal-iOS-SDK/tree/master/Examples

4
JonF

pour iOS :

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

@Lakshmi Reddy

dans iOS, vous pouvez faire comme ci-dessous:

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);
0
Mohammad Julfikar