2017-09-15 78 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; 
});