2016-04-02 47 views
16

我正在開發一個餐廳應用程序。我在我的應用程序中使用One Signal發送通知。在我下訂單時,我需要爲特定用戶發送一個信號的唯一ID,以獲取「您的訂單已成功放入...正在進行中,請等待」的通知。爲此我需要用戶的One Signal用戶ID。我怎麼才能得到它?我是One Signal的新手。請幫幫我。如何在Mobile中獲取One Signal唯一的用戶ID?

回答

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的想法@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雷迪

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

爲Android的上述方案已被棄用 用途:

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

爲Android,你可以得到又名playerIDs的用戶ID使用getPermissionSubscriptionState在3.5.0+版本原生的Android SDK的開始方法和addSubscriptionObserver。

更多關於使用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,您可以獲取從本機iOS SD的2.5.0版本開始的playerID 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示例項目斯威夫特在Github上,可能會有一些幫助的:https://github.com/OneSignal/OneSignal-iOS-SDK/tree/master/Examples