2016-03-14 111 views
2

我正在为我的网站实施OneSignal网站推送通知。现在我只想为注册用户启用推送通知。我曾预料用户点击“允许”或“阻止”后会有一些回调方法,但没有任何回调方法。我看到我必须与OneSignal.isPushNotificationsEnabled()OneSignal.push(["getIdsAvailablegetIdsAvailable",..])一起工作,但我不确定每件事情应该如何结合在一起。OneSignal网站推送流程

我觉得我应该做的是每次注册用户在网页来执行这样的事情:

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

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

回答

3

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

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

它发射时的用户更改预订状态。请注意,完整且有效的订阅基于以下几点:通知权限,是否有后台工作人员处于活动状态以提取通知,用于存储用户ID和注册令牌信息的Web数据库是否完好无损,用户是否已手动退出或不退出。

有一个单独的方法不是在文档中,这仅仅是用于检查用户权限:

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

的权限参数可以是“默认”,“授予”和“拒绝”。