Push notification 订阅后获取OneSignal用户ID
我使用OneSignal获取通知,因此根据文档,我将SDK代码如下所示:Push notification 订阅后获取OneSignal用户ID,push-notification,notifications,onesignal,Push Notification,Notifications,Onesignal,我使用OneSignal获取通知,因此根据文档,我将SDK代码如下所示: <script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async></script> <script> var OneSignal = window.OneSignal || []; OneSignal.push(["init", { appId: "myappID", safari_we
<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async></script>
<script>
var OneSignal = window.OneSignal || [];
OneSignal.push(["init", {
appId: "myappID",
safari_web_id: "myID",
autoRegister: false,
promptOptions: {
/* My prompt options */
},
welcomeNotification: {
//my options
},
notifyButton: {
enable: true,
showCredit: false,
prenotify: true,
position: 'bottom-left',
text: {
/*My text options */
},
colors: { // My custom colors
}
}
}]);
OneSignal.push(function(){
OneSignal.showHttpPrompt();
OneSignal.getUserId().then(function(userId){
console.log("OneSignal User ID:", userId);
});
});
</script>
var OneSignal=window.OneSignal | |[];
OneSignal.push([“init”{
appId:“我的appId”,
safari_web_id:“myID”,
自动注册:错误,
提示:{
/*我的提示选项*/
},
欢迎致电:{
//我的选择
},
通知按钮:{
启用:对,
showCredit:错,
prenotify:是的,
位置:'左下',
正文:{
/*我的文本选项*/
},
颜色:{//我的自定义颜色
}
}
}]);
OneSignal.push(函数(){
OneSignal.showHttpPrompt();
OneSignal.getUserId().then(函数(userId){
log(“OneSignal用户ID:”,userId);
});
});
显示幻灯片提示消息非常有效,但订阅后我需要刷新网站以在控制台中获取用户ID。如何修改此代码函数以在订阅后立即在控制台中获取用户ID?您需要为订阅更改事件添加侦听器。否则,将在用户接受订阅之前触发getUserId调用。这对我有用:
var OneSignal = window.OneSignal || [];
OneSignal.push(function() {
OneSignal.on('subscriptionChange', function (isSubscribed) {
console.log("The user's subscription state is now:",isSubscribed);
OneSignal.push(function() {
OneSignal.getUserId(function(userId) {
console.log("OneSignal User ID:", userId);
});
});
});
});
OneSignal.push(["init", {
appId: "myappID",
safari_web_id: "myID",
autoRegister: false,
promptOptions: {
/* My prompt options */
},
welcomeNotification: {
//my options
},
notifyButton: {
enable: true,
showCredit: false,
prenotify: true,
position: 'bottom-left',
text: {
/*My text options */
},
colors: { // My custom colors
}
}
}]);