dsnoeck / laravel-push-notification
Laravel package to send push notifications to mobile devices (apns, gcm)
Requires
- php: >=5.3.0
- illuminate/support: ~4.2
- sly/notification-pusher: 2.*
This package is not auto-updated.
Last update: 2024-12-17 08:19:38 UTC
README
Package to enable sending push notifications to devices
Installation
Update your composer.json
file to include this package as a dependency.
"dev-master" for latest version
"4.0" for compatibility with laravel 4.0
"4.2" for compatibility with laravel 4.2
"dsnoeck/laravel-push-notification": "dev-master"
Register the PushNotification service provider by adding it to the providers array in the app/config/app.php
file.
'providers' => array(
Davibennun\LaravelPushNotification\LaravelPushNotificationServiceProvider
)
Alias the PushNotification facade by adding it to the aliases array in the app/config/app.php
file.
'aliases' => array( 'PushNotification' => 'Davibennun\LaravelPushNotification\Facades\PushNotification' )
Configuration
Copy the config file into your project by running
php artisan config:publish davibennun/laravel-push-notification
This will generate a config file like this
array(
'appNameIOS'=>array(
'environment'=>'development',
'certificate'=>'/path/to/certificate.pem',
'passPhrase'=>'password',
'service'=>'apns'
),
'appNameAndroid'=>array(
'environment'=>'production',
'apiKey'=>'yourAPIKey',
'service'=>'gcm'
)
);
Where all first level keys corresponds to an service configuration, each service has its own properties, android for instance have apiKey
and IOS uses certificate
and passPhrase
. You can set as many services configurations as you want, one for each app.
#####Dont forget to set service
key to identify IOS 'service'=>'apns'
and Android 'service'=>'gcm'
#####The certificate path must be an absolute path, so in the configuration file you can use these:
//Path to the 'app' folder
'certificate'=>app_path().'/myCert.pem'
Laravel functions are also available public_path()
storage_path()
base_path()
Usage
PushNotification::app('appNameIOS') ->to($deviceToken) ->send('Hello World, i`m a push message');
Where app argument appNameIOS
refers to defined service in config file.
To multiple devices and optioned message:
$devices = PushNotification::DeviceCollection(array( PushNotification::Device('token', array('badge' => 5)), PushNotification::Device('token1', array('badge' => 1)), PushNotification::Device('token2') )); $message = PushNotification::Message('Message Text',array( 'badge' => 1, 'sound' => 'example.aiff', 'actionLocKey' => 'Action button title!', 'locKey' => 'localized key', 'locArgs' => array( 'localized args', 'localized args', 'localized args' ), 'launchImage' => 'image.jpg', 'custom' => array('custom data' => array( 'we' => 'want', 'send to app' )) )); PushNotification::app('appNameIOS') ->to($devices) ->send($message);
This package is wrapps Notification Package and adds some flavor to it.
####Usage advice This package should be used with Laravel Queues, so pushes dont blocks the user and are processed in the background, meaning a better flow.
#License
The Laravel framework is open-sourced software licensed under the [MIT license]