2016-03-14 88 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) {..}]); 

的權限參數可以是「默認」,「授予」和「拒絕」。