This package doesn't require 3rd party dependencies, and it allows sending of pushes to multiple apps, using differente PEM certificates and Apple Bundle Ids.
You can install the package via composer:
composer require apantle/laravel-notification-apn-http2
Store your certificates in directory certificates
(sibling to directory app
)
Implement toApn
method in your notification class:
public function toApn($notifiable): ApnHttp2Message
{
return ApnHttp2Message::create(
$this->title,
'',
$this->message,
[
'customKey' => 'customData',
]
)
->setTopic($notifiable->org->topic)
->setCertificateFile($notifiable->org->ios_cert_push_file)
;
}
Implement method routeNotificationForApn()
in your notifiable models,
returning a single device token or an array of tokens:
public function routeNotificationForApn($notification)
{
return empty($notification->tokens)
? $this->devices->pluck('token')
: $notification->tokens;
}
APN_HTTP2_PRODUCTION=true
APN_HTTP2_TOPIC=work.jefrancomix.demo
APN_HTTP2_CERTIFICATE=demo.pem
APN_HTTP2_CERT_PASSWORD=Aw3$om3!
The MIT License (MIT). Please see License File for more information.
This package was generated using the Laravel Package Boilerplate.