macellan / onesignal
OneSignal 通知渠道用于 Laravel
v2.0
2024-08-01 08:11 UTC
Requires
- php: ^8.1
- ext-json: *
- guzzlehttp/guzzle: ^7.2
- illuminate/http: ^9.0|^10.0|^11.0
- illuminate/notifications: ^9.0|^10.0|^11.0
- illuminate/support: ^9.0|^10.0|^11.0
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/framework: ^9.0|^10.0|^11.0
- laravel/pint: ^1.17
- mockery/mockery: ^1.4.4
- orchestra/testbench: ^7.1|^8.0|^9.0
- pestphp/pest: ^1.23.1|^2.34.9
- pestphp/pest-plugin-laravel: ^1.4.0|^2.4
- roave/security-advisories: dev-latest
- squizlabs/php_codesniffer: ^3.6
README
此包使得使用 OneSignal 向 Laravel 9.0、10.0、11.0 发送推送通知变得简单。
此插件仅使用 OneSignal Player ID 发送通知。
安装
您可以通过 composer 安装此包
composer require macellan/onesignal
设置
将您的 OneSignal appId 添加到 config/services.php 配置文件中
// config/services.php ... 'onesignal' => [ 'app_id' => env('ONESIGNAL_APP_ID', ''), ], ...
用法
您可以在通知中的 via() 方法中使用此通道
use Illuminate\Notifications\Notification; use Macellan\OneSignal\OneSignalMessage; class AccountApproved extends Notification { public function via($notifiable) { return ['onesignal']; } public function toOneSignal($notifiable) { return OneSignalMessage::create() ->setSubject('Awesome App') ->setBody('Your account was approved!'); } }
您可以通过添加 setAppId() 方法来更改特定通知的 appId
public function toOneSignal($notifiable) { return OneSignalMessage::create() ->setAppId('Other AppId') }
在您的可通知模型中,确保包含 routeNotificationForOneSignal() 方法。
public function routeNotificationForOneSignal() { return $this->player_id; }
按需通知
有时您可能需要向非“用户”发送通知。使用 Notification::route 方法,在发送通知之前可以指定临时的通知路由信息
Notification::route('onesignal', 'player_id') ->notify(new AccountApproved());