web-dev-qa-db-ja.com

モバイルでOne Signalの一意のユーザーIDを取得する方法

レストランアプリを開発しています。アプリでOne Signalを使用して通知を送信しています。ここで、注文を行う際に、「ご注文は正常に完了しました。進行中です。お待​​ちください」という通知を受け取るために、特定のユーザーに1つのシグナルの一意のIDを送信する必要があります。そのためには、ユーザーのOne SignalユーザーIDが必要です。どうすれば入手できますか?私はOne Signalの初心者です。私を助けてください。

24
Parama Sudha

OneSignalの公式サイトにある次のコードを使用して、OneSignalの一意のIDを取得します。

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);

        }
    });

参照:

公式サイトでコードを取得する

42
Parama Sudha

上記のAndroidのソリューションは非推奨です使用:

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

Androidの場合、getPermissionSubscriptionStateメソッドとaddSubscriptionObserverを使用して、ネイティブのAndroid SDKの3.5.0以降のバージョンで始まるユーザーID、つまりplayerIDを取得できます。

GetPermissionSubscriptionStateの使用の詳細については、以下を参照してください: https://documentation.onesignal.com/docs/Android-native-sdk#section--getpermissionsubscriptionstate-

サブスクリプションオブザーバーの追加については、以下を参照してください: https://documentation.onesignal.com/docs/Android-native-sdk#section--addsubscriptionobserver-

GithubにはネイティブAndroidの例: https://github.com/OneSignal/OneSignal-Android-SDK

AndroidStudioというラベルが付いたサンプルフォルダーにあります

IOSの場合、getPermissionSubscriptionStateメソッドとaddSubscriptionObserverを使用して、ネイティブiOS SDKの2.5.0バージョンからplayerIDを取得できます。

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/例

4
JonF

iOS

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

なかむら

iOSでは、次のようにできます。

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