scary-layer/laravel-exponent-push-notifications

用于 Laravel 的 Exponent 推送通知驱动程序

v3.0.0 2022-04-04 12:30 UTC

This package is auto-updated.

Last update: 2024-09-19 16:58:13 UTC


README

Latest Version on Packagist Software License Build Status StyleCI SensioLabsInsight Quality Score Code Coverage Total Downloads

内容

安装

您可以通过 composer 安装此包

composer require alymosul/laravel-exponent-push-notifications

如果您正在使用 Laravel 5.5 或更高版本,则此包将自动使用 包发现 注册自身。对于 Laravel 的旧版本,您必须手动安装服务提供者

// config/app.php
'providers' => [
    ...
    NotificationChannels\ExpoPushNotifications\ExpoPushNotificationsServiceProvider::class,
],

在发布 exponent 通知迁移之前,您必须在 .env 文件中添加

EXPONENT_PUSH_NOTIFICATION_INTERESTS_STORAGE_DRIVER=database

您可以使用以下命令发布迁移

php artisan vendor:publish --provider="NotificationChannels\ExpoPushNotifications\ExpoPushNotificationsServiceProvider" --tag="migrations"

发布迁移后,您可以通过运行迁移来创建 exponent_push_notification_interests

php artisan migrate

您可以选择使用以下命令发布配置文件

php artisan vendor:publish --provider="NotificationChannels\ExpoPushNotifications\ExpoPushNotificationsServiceProvider" --tag="config"

这是已发布配置文件的内容

return [
    'interests' => [
        /*
         * Supported: "file", "database"
         */
        'driver' => env('EXPONENT_PUSH_NOTIFICATION_INTERESTS_STORAGE_DRIVER', 'file'),

        'database' => [
            'events' => [],

            'table_name' => 'exponent_push_notification_interests',
        ],
    ]
];

用法

use NotificationChannels\ExpoPushNotifications\ExpoChannel;
use NotificationChannels\ExpoPushNotifications\ExpoMessage;
use Illuminate\Notifications\Notification;

class AccountApproved extends Notification
{
    public function via($notifiable)
    {
        return [ExpoChannel::class];
    }

    public function toExpoPush($notifiable)
    {
        return ExpoMessage::create()
            ->badge(1)
            ->enableSound()
            ->title("Congratulations!")
            ->body("Your {$notifiable->service} account was approved!");
    }
}

可用消息方法

所有可用选项的列表

  • title(''):接受字符串值作为标题。
  • body(''):接受字符串值作为正文。
  • enableSound():启用通知声音。
  • disableSound():静音通知声音。
  • badge(1):接受整数值作为徽章。
  • ttl(60):接受整数值作为存活时间。
  • setJsonData(''):接受 json 字符串或数组作为附加信息。
  • channelID(''):接受字符串以设置 Android 设备的通知 channelId。
  • priority('default'):接受字符串以设置通知的优先级,必须是 [default, normal, high] 之一。

管理接收者

此包注册了两个处理接收者订阅的端点,这些端点在 src/Http/routes.php 文件中定义,由 ExpoController 使用,并通过包服务提供者加载。

路由消息

默认情况下,exponent "interest" 消息将通过 {notifiable}.{id} 规范定义要发送到的,例如 App.User.1,但是您可以通过在 notifiable 类方法中包含 routeNotificationForExpoPushNotifications() 来更改此行为,该方法返回兴趣名称。

变更日志

有关最近更改的更多信息,请参阅 CHANGELOG

测试

$ composer test

安全

如果您发现任何与安全相关的问题,请通过电子邮件发送到 alymosul@gmail.com 而不是使用问题跟踪器。

贡献

有关详细信息,请参阅 CONTRIBUTING

鸣谢

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件