granam / safari-push-notifications
为苹果/Safari网络推送通知创建推送包
1.0.6
2018-01-11 14:42 UTC
Requires
- php: >=7.0
- ext-zip: *
- granam/strict-object: ^3.0
Requires (Dev)
- granam/exceptions-hierarchy: ~4.0
- mockery/mockery: ~1.0
- phpunit/phpunit: ~6.0
README
深受connorlacombe/Safari-Push-Notifications/启发。
流程
在您的JavaScript命令下,通过调用pushSafariNotification
(webServiceId, webServiceUrl, serverPushUrl, userId, title, text, buttonText)
- 浏览器将检查是否为足够版本的Safari(《OS X v10.9及更高版本》)
- 如果用户已经允许推送通知
- 则推送通知会发送
- 否则如果用户已经拒绝推送通知
- 则推送通知不会发送(要检查是否可以发送推送通知,请调用JS函数
hasUserAllowedPushNotifications
)
- 则推送通知不会发送(要检查是否可以发送推送通知,请调用JS函数
- 如果用户尚未决定是否允许或拒绝您发送推送通知的权限,它将
- 在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事件
- 然后,如果用户同意,苹果将通过您在Apple开发者控制台设置的URL调用
- 然后触发window对象上的JS事件
safariPushNotificationsPermissionsRequestEnd
- 在window JS对象上触发JS事件