2017-09-15 87 views
-1

我正在做一個應用程序在我的學校做作業,我使用的是Onesignal REST API,但我想將玩家ID保存在我的數據庫中,以便在另一個應用程序(如服務器發件人)中使用它。
我的應用程序在intel xdk我正在使用Cordova構建Android。
問題是我找不到任何獲取播放器ID的示例。
任何人都可以幫助我解決這個問題嗎?OneSignal獲得玩家ID

我使用JavaScript 謝謝。

這是我在我的.js:

document.addEventListener('deviceready', function() { 

    var notificationOpenedCallback = function(jsonData) { 
    console.log('notificationOpenedCallback: ' + JSON.stringify(jsonData)); 
    }; 

    window.plugins.OneSignal 
    .startInit("XXXXXX-XXXX-XXX-XXXX-XXXXXXXXX") // <- api id 
    .handleNotificationOpened(notificationOpenedCallback) 
    .endInit(); 

    OneSignal.push(function() { 
    OneSignal.getUserId(function(userId) { 
     console.log("OneSignal User ID:", userId); 
    }); 

    OneSignal.getUserId().then(function(userId) { 
     console.log("OneSignal User ID:", userId); 
    }); 
    }); 
}, false); 

回答

0

OneSignal原型提供了一個功能getIds這給當前設備的玩家ID和推送令牌。

window.plugins.OneSignal 
    .startInit("XXXXXX-XXXX-XXX-XXXX-XXXXXXXXX") <- api id 
    .getIds(function(userDetails) { 
     console.log(userDetails.userId); // Player ID 
     console.log(userDetails.pushToken); 
    }) 
    .endInit(); 

https://documentation.onesignal.com/docs/cordova-sdk#section--postnotification-

+0

能請你也加入一些文字解釋什麼是OP,並給予一些方面的問題? –

+0

添加了文檔的上下文和鏈接。 –

1

這裏的工作代碼片段:

window.plugins.OneSignal 
    .startInit("YOUR-APP-ID") 
    .handleNotificationOpened(notificationOpenedCallback) 
    .endInit(); 

window.plugins.OneSignal.getPermissionSubscriptionState(function(status) { 
    idapp = status.subscriptionStatus.userId; 
});