chuoke / umeng-push
友盟推送
v0.0.1
2022-11-19 13:01 UTC
Requires
- php: ^7|^8
Requires (Dev)
- laravel/pint: ^1.2
- pestphp/pest: ^1.20
This package is auto-updated.
Last update: 2024-09-09 15:09:02 UTC
README
安装
使用 composer 安装
composer require chuoke/umeng-push
使用
<?php use Chuoke\UmengPush\Config; use Chuoke\UmengPush\UmengPusher; use Chuoke\UmengPush\Messages\AndroidMessage; use Chuoke\UmengPush\Payloads\AndroidPayload; use Chuoke\UmengPush\Policies\AndroidPolicy; $androidMessage = AndroidMessage::make() ->payload( AndroidPayload::make() ->title('这是标题') ->text('这是文本') ->extra([ 'path' => 'home', ]) ) ->description('一条消息') ->broadcast(); // 使用设备号 $androidMessage->deviceTokens(['t1', 't2']); // or 使用别名 $androidMessage->alias(['t1', 't2'], 'user_type'); $startTime = '2022-12-23 23:45:23'; if (strtotime($startTime) > time()) { $androidMessage->policy(AndroidPolicy::make()->startTime($startTime)->outBizNo('123')); } $config = Config::make([ 'production_mode' => true, 'app_key' => 'app_push_key', 'app_secret' => 'app_push_secret', ]); $res = UmengPusher::make($config)->send($androidMessage); if ($res->isOk()) { // to something; }
在 Laravel 中使用
<?php // 在 AppServiceProvider 中注册 use \Chuoke\UmengPush\UmengPushChannel; $config = [ 'android' => [ 'production_mode' => true, 'app_key' => 'app_push_key', 'app_secret' => 'app_push_secret', ], 'ios' => [ 'production_mode' => true, 'app_key' => 'app_push_key', 'app_secret' => 'app_push_secret', ], ]; $this->app->bind(UmengPushChannel::class, function ($app) { return new UmengPushChannel($config); }); // 或者 $this->app->when(UmengPushChannel::class) ->needs('$config') ->give($config);
在通知类中添加相应内容
<?php namespace App\Notifications; use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Notification; use \Chuoke\UmengPush\UmengPushChannel; class SomeNotification extends Notification { /** * Get the notification's delivery channels. * * @param mixed $notifiable * @return array */ public function via($notifiable) { return [UmengPushChannel::class]; } /** * Get the mail representation of the notification. * * @param mixed $notifiable * @return mixed */ public function toUmengPush($notifiable) { $messages = []; if ($device = $notifiable->androidDevice()) { $messages[] = AndroidMessage::make() ->payload( AndroidPayload::make() ->title('这是标题') ->text('这是文本') ->extra([ 'path' => 'home', ]) ) ->listcast(); } // 或者使用别名 $messages[] = AndroidMessage::make() ->payload( AndroidPayload::make() ->title('这是标题') ->text('这是文本') ->extra([ 'path' => 'home', ]) ) ->alias($notifiable->getKey(), 'user_id') ->listcast(); $messages[] = IosMessage::make() ->payload( IosPayload::make() ->alert('这是标题', '这是文本') ->customParams([ 'path' => 'home', ]) ) ->alias($notifiable->getKey(), 'user_id') ->listcast(); return $messages; } }
测试
composer test
更新日志
有关最近变更的更多信息,请参阅 更新日志。
贡献
有关详细信息,请参阅 贡献指南。
安全漏洞
有关如何报告安全漏洞,请查看 我们的安全策略。
致谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。