apsbd/laravel-exponent-push-notifications

laravel的Exponent推送通知驱动程序

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

This package is auto-updated.

Last update: 2024-09-16 15:28:57 UTC


README

Latest Version on Packagist Software License Build Status StyleCI

内容

安装

您可以通过composer安装此包

composer require apsbd/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

安全性

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

贡献

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

鸣谢

许可证

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