lifespikes/laravel-exponent-push-notifications

laravel的Exponent推送通知驱动

v2.4.1 2022-03-30 00:20 UTC

This package is auto-updated.

Last update: 2024-09-04 08:40:59 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()来更改此行为,该方法返回兴趣名称。

变更日志

请参阅变更日志以获取有关最近更改的更多信息。

测试

$ composer test

安全

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

贡献

有关详细信息,请参阅贡献

致谢

许可

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