OneSignal网站推送流程

时间:2016-03-14 21:59:57

标签: web-push onesignal

我正在为我的网站实施OneSignal网站推送通知。目前我只想为注册用户启用推送通知。我曾预料到用户点击“允许”或“阻止”后会有一些回调方法,但是没有。我发现我必须使用OneSignal.isPushNotificationsEnabled()OneSignal.push(["getIdsAvailablegetIdsAvailable",..]),但我不确定应该如何将所有内容组合在一起。

我认为我应该做的是每次注册用户都在主页上执行以下操作:

if isPushNotificationsEnabled
   OneSignal.push(["getIdsAvailablegetIdsAvailable",..])`
   send_user_id_to_server_where_it_is_saved_in_the_database
else
   OneSignal.push(["registerForPushNotifications"..])
end

困扰我的一件事是,如果执行此代码并且用户单击“允许”,它将不会触发任何代码,并且通知将永远不会到达我的服务器,用户实际上已允许推送通知。我将不得不等待用户回来或刷新页面。这是它应该如何工作或我错过了什么?

1 个答案:

答案 0 :(得分:3)

与OneSignal支持人员聊天后,他们提供了一种新方法

OneSignal.on('subscriptionChange', function (isSubscribed) {..}]);

将在用户的订阅状态更改时触发。请注意,完整且有效的订阅基于以下几点:通知权限,是否有后台工作程序处于活动状态以获取通知,用于存储用户ID和注册令牌信息的Web数据库是否完好无损,用户是否已手动执行选择与否。

文档中没有单独的方法,仅用于检查用户权限:

OneSignal.push(["getNotificationPermission", function(permissions) {..}]); 

permissions参数可以是“default”,“grant”和“denied”。