mammutgroup / laravel-push-notification
该包的最新版本(1.3)没有可用的许可证信息。
Laravel包,用于向移动设备发送推送通知(apns, gcm)
1.3
2017-04-23 07:49 UTC
Requires
- php: >=5.3.0
- illuminate/support: 5.*
- mammutgroup/notification-pusher: 3.*
This package is not auto-updated.
Last update: 2024-09-20 17:42:51 UTC
README
使设备能够发送推送通知的包
安装
更新你的composer.json
文件,将其作为依赖项包含
Laravel 5 & Lumen
"davibennun/laravel-push-notification": "dev-laravel5"
Laravel 4.*
"davibennun/laravel-push-notification": "dev-master"
通过将其添加到 providers 数组中注册 PushNotification 服务提供者。
'providers' => array( ... 'Davibennun\LaravelPushNotification\LaravelPushNotificationServiceProvider' )
通过将别名添加到 app/config/app.php
文件中的 aliases 数组中,别称 PushNotification 门面。
'aliases' => array( ... 'PushNotification' => 'Davibennun\LaravelPushNotification\Facades\PushNotification' )
配置
通过运行以下命令将配置文件复制到你的项目中:(Lumen用户跳过此步骤)
Laravel 5
php artisan vendor:publish --provider="Davibennun\LaravelPushNotification\LaravelPushNotificationServiceProvider" --tag="config"
Laravel 4.*
php artisan config:publish davibennun/laravel-push-notification
这将生成如下配置文件
array( 'appNameIOS'=>array( 'environment' => 'development', 'certificate' => '/path/to/certificate.pem', 'passPhrase' => 'password', 'service' => 'apns' ), 'appNameAndroid'=>array( 'environment' => 'production', 'apiKey' => 'yourAPIKey', 'service' => 'gcm' ) );
其中所有第一级键都对应一个服务配置,每个服务都有其自己的属性,例如,Android 使用 apiKey
,iOS 使用 certificate
和 passPhrase
。你可以设置任意数量的服务配置,每个应用一个。
别忘了将 service
键设置为标识 iOS 'service'=>'apns'
和 Android 'service'=>'gcm'
证书路径必须是绝对路径,因此在配置文件中可以使用这些
//Path to the 'app' folder
'certificate'=>app_path().'/myCert.pem'
Laravel 函数也是可用的 public_path()
storage_path()
base_path()
使用
PushNotification::app('appNameIOS') ->to($deviceToken) ->send('Hello World, i`m a push message');
其中 app 参数 appNameIOS
指的是配置文件中定义的服务。
### 动态配置和 Lumen 用户 你可以直接设置 app 配置数组:(记住数组架构)
//iOS app PushNotification::app(['environment' => 'development', 'certificate' => '/path/to/certificate.pem', 'passPhrase' => 'password', 'service' => 'apns']); //Android app PushNotification::app(['environment' => 'production', 'apiKey' => 'yourAPIKey', 'service' => 'gcm']);
向多个设备发送可选消息
$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', ), 'launchImage' => 'image.jpg', 'custom' => array('custom data' => array( 'we' => 'want', 'send to app' )) )); $collection = PushNotification::app('appNameIOS') ->to($devices) ->send($message); // get response for each device push foreach ($collection->pushManager as $push) { $response = $push->getAdapter()->getResponse(); } // access to adapter for advanced settings $push = PushNotification::app('appNameAndroid'); $push->adapter->setAdapterParameters(['sslverifypeer' => false]);
此包封装了 Notification Package 并为其添加了一些特性。
使用建议
应使用 Laravel 队列 与此包一起使用,这样推送不会阻塞用户,并且在后台进行处理,这意味着更好的流程。