jppablo/pusher-push-notifications

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

2.0 2018-12-10 02:05 UTC

This package is auto-updated.

Last update: 2024-09-15 09:56:35 UTC


README

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

此包使您能够轻松使用 Laravel 5.3 发送 Pusher 推送通知。

内容

安装

您可以通过 composer 安装此包。

composer require laravel-notification-channels/pusher-push-notifications

您必须安装服务提供者。

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

设置您的 Pusher 账户

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

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

用法

现在您可以在 Notification 类中的 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() 来更改此行为,该方法返回兴趣名称。

变更日志

请参阅CHANGELOG 了解最近更改的信息。

测试

$ composer test

安全

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

贡献

有关详细信息,请参阅CONTRIBUTING

鸣谢

许可

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