按照Apple Documentation的說明,允許具有Safari的用戶訪問網站並獲取Apple推送通知服務的推送通知。OSX網站推送通知 - Safari requestPermission回撥從未呼叫
我正在使用SSL,擁有來自Apple的證書,並生成了推送包文件。
Safari在運行提示requestPermission
時下載此內容,顯示用戶權限請求提示,但在用戶單擊'批准'時,從不會調用回調函數。
window.safari.pushNotification.requestPermission(url, websitePushID, userInfo, callback);
- 回調函數不會被調用。
- 不引發任何異常。
- 對於任何成功或錯誤,不會向服務器發送POST。
- 該網站現在列在「系統首選項」>「通知」下。
- 網站是而不是在Safari Preferences中的Notifications下列出。
- 立即拒絕進一步嘗試請求權限或查詢權限。
重置被拒絕的權限的唯一方法是編輯OSX的內部sqllite文件並刪除Safari中的一組配置文件,然後重新嘗試請求。
什麼可能導致這種不尋常的行爲?
在調用requestPermission之前,權限處於「默認」狀態,但仍不會進行回調。正在運行的代碼與樣本中的字面相同,只是回調函數將其參數寫入控制檯。我有一個蘋果公司的bug報告。 – simbolo
@simbolo你有沒有想過解決?我們看到了同樣的事情。 – Casey
@Casey不要!我打開了許多開發人員技術支持案例,只是被告知Safari不是受支持的產品。因此,有一個開放的bug報告(#17565372),在這幾個月後仍然是開放的。最後,我放棄了實施,因爲它始終無法解決它爲什麼不起作用。一些安慰是因爲我無法訂閱任何其他網站,所以它不僅僅是我。我得出的結論是,在小牛隊的比賽中有一些闖入Safari,並且至今仍然被打破。 – simbolo