granam/safari-push-notifications

为苹果/Safari网络推送通知创建推送包

1.0.6 2018-01-11 14:42 UTC

This package is auto-updated.

Last update: 2024-08-27 00:11:34 UTC


README

深受connorlacombe/Safari-Push-Notifications/启发。

流程

在您的JavaScript命令下,通过调用pushSafariNotification(webServiceId, webServiceUrl, serverPushUrl, userId, title, text, buttonText)

  • 浏览器将检查是否为足够版本的Safari(《OS X v10.9及更高版本》)
  • 如果用户已经允许推送通知
    • 则推送通知会发送
  • 否则如果用户已经拒绝推送通知
    • 则推送通知不会发送(要检查是否可以发送推送通知,请调用JS函数hasUserAllowedPushNotifications
  • 如果用户尚未决定是否允许或拒绝您发送推送通知的权限,它将
    • 在window JS对象上触发JS事件safariPushNotificationsPermissionsRequestStart
    • 然后通过Safari内置布局请求用户允许从您的网站接收推送通知的权限
      • 然后,如果用户同意,苹果将通过您在Apple开发者控制台设置的URL调用\Granam\Safari\PushPackageController::pushPackages发送POST请求
      • 然后苹果将通过您在Apple开发者控制台设置的URL调用\Granam\Safari\PushPackageController::devicesRegistrations发送用户决定
      • 然后 - 如果用户同意 - 则在window对象上触发JS事件safariPushNotificationsPermissionsJustGranted - 然后推送通知会发送
        • 否则如果用户拒绝,则在window对象上触发JS事件safariPushNotificationsPermissionsJustDenied,并且推送通知不会发送
    • 然后触发window对象上的JS事件safariPushNotificationsPermissionsRequestEnd