rich2k/pusher-push-notifications

Pusher 本地推送通知驱动程序。

1.1.8 2024-07-18 10:57 UTC

This package is auto-updated.

Last update: 2024-09-18 11:20:31 UTC


README

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

此包简化了使用 Laravel 5.3 - 5.6 发送 Pusher 推送通知的过程。

内容

安装

您可以通过 composer 安装此包。

composer require clementblanco/pusher-push-notifications:^1.0

您必须安装服务提供者。

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

设置您的 Pusher 账户

在使用此包之前,您应该设置一个 Pusher 账户。以下是所需步骤。

  • 登录到 https://dashboard.pusher.com/
  • 从侧边栏选择您的应用程序或创建一个新的应用程序。
  • 点击“推送通知”选项卡。
  • 上传您的 APNS 证书或添加您的 GCM API 密钥。
  • 现在选择“应用程序密钥”选项卡。
  • 复制您的 app_idkeysecret
  • 更新 config/broadcasting.php 文件中 pusher 连接下的值。
  • 现在您可以开始了。

使用方法

现在您可以在通知类中的 via() 方法中使用该频道。

use NotificationChannels\PusherPushNotifications\PusherChannel;
use NotificationChannels\PusherPushNotifications\PusherMessage;
use Illuminate\Notifications\Notification;

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

    public function toPushNotification($notifiable)
    {
        return PusherMessage::create()
            ->iOS()
            ->badge(1)
            ->sound('success')
            ->body("Your {$notifiable->service} account was approved!");
    }
}

可用的消息方法

  • platform(''): 接受字符串值 iOSAndroid
  • iOS(): 将平台值设置为 iOS。
  • android(): 将平台值设置为 Android。
  • title(''): 接受字符串值作为标题。
  • body(''): 接受字符串值作为正文。
  • sound(''): 接受字符串值作为通知声音文件。注意,如果您留空,则默认声音值为 default
  • icon(''): 接受字符串值作为图标文件。(仅限 Android)
  • badge(1): 接受整数值作为徽章。(仅限 iOS)
  • setOption($key, $value): 允许您在消息有效负载中设置任何值。有关更多信息,请参阅 此处关于 iOS或此处关于 Android

发送到多个平台

您可以使用 withiOS()withAndroid() 方法同时向 iOS 设备和 Android 设备发送单个消息。

public function toPushNotification($notifiable)
{
    $message = "Your {$notifiable->service} account was approved!";

    return PusherMessage::create()
        ->iOS()
        ->badge(1)
        ->body($message)
        ->withAndroid(
            PusherMessage::create()
                ->title($message)
                ->icon('icon')
        );
}
  • 请注意,iOS 是默认平台,这意味着您不需要调用 ->iOS()
  • 当使用 withAndroid()withiOS() 时,您不需要定义平台,它会在幕后为您完成。

路由消息

默认情况下,Pusher 的“兴趣”消息将使用 {notifiable}.{id} 规范定义,例如 App.User.1,但是您可以通过在可通知类的方法中包含 routeNotificationForPusherPushNotifications() 来更改此行为,该方法返回兴趣名称。

更新日志

有关最近更改的更多信息,请参阅 更新日志

测试

$ composer test

安全性

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

贡献

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

致谢

许可证

麻省理工学院许可证(MIT)。请参阅许可文件获取更多信息。