pushmix / laravel-web-notification
Pushmix Notification Driver for Laravel
Requires
- php: >=7.2.0
- guzzlehttp/guzzle: ^6.3@dev
- illuminate/notifications: 6.*
- illuminate/support: 6.*
Requires (Dev)
- mockery/mockery: ^1.0
- orchestra/testbench: ^3.5
- phpunit/phpunit: ^6.4
This package is auto-updated.
Last update: 2025-03-13 17:30:48 UTC
README
About
This package makes it easy to send Pushmix notifications with Laravel 6
Contents
- Setting up your Pushmix account
- Installation
- Displaying Opt In Prompt
- Usage
- Changelog
- Testing
- Issues
- Security Vulnerabilities
- Contributing
- Credits
- License
Setting up your Pushmix account
If you haven't already, sign up for a free account on pushmix.co.uk.
Create new subscription for your website and choose preferred integration method. Build your subscribers audience via displaying an Opt-In Prompt asking users for permission to send them push notifications.
Installation
You can install the package via composer:
$ composer require pushmix/laravel-web-notification:dev-master
If you're installing the package in Laravel 5.4 or lower, you must import the service provider:
// config/app.php 'providers' => [ ... Pushmix\WebNotification\PushmixServiceProvider::class, ],
Configuration
Publish package config and view files:
php artisan vendor:publish --provider="Pushmix\WebNotification\PushmixServiceProvider"
Add your Subscription ID into .env
file:
PUSHMIX_SUBSCRIPTION_ID=PASTE_YOUR_SUBSCRIPTION_ID_HERE
Displaying Opt In Prompt
To display Opt-In Prompt you will need to include block of JavaScript into your template using Blade @include
directive.
Alternatively you can copy and paste content of vendor.pushmix.optin
into template.
<body> ... <div class="content"> <div class="title m-b-md"> Laravel </div> </div> <!-- Including Opt In Prompt in Blade template--> @include('vendor.pushmix.optin') </body> ...
Usage
Now you can use the channel in your via()
method inside the notification:
use Pushmix\WebNotification\PushmixChannel; use Pushmix\WebNotification\PushmixMessage; use Illuminate\Notifications\Notification; class AbandonedCart extends Notification { public function via($notifiable) { return [PushmixChannel::class]; } public function toPushmix($to) { return PushmixMessage::create($to) /* Required Parameters */ ->title("You still have items in your Cart!") ->body("There's still time to complete your order. Return to your cart?") ->url("https://www.pushmix.co.uk") /* Optional Parameters */ ->button("Return to your cart", "https://www.pushmix.co.uk/docs") // button one ->priority("high") ->ttl(7200) // time to live ->icon("https://www.pushmix.co.uk/media/favicons/apple-touch-icon.png") ->badge("https://www.pushmix.co.uk/media/favicons/pm_badge_v2.png") ->image("https://www.pushmix.co.uk/media/photos/photo16.jpg"); } }
The notifications will be sent to the audience, which subscribed via Opt-In Prompt displayed on your website.
Using the Notification::route
method, you can specify which subscribers group you are targeting.
use Notification; use App\Notifications\AbandonedCart; ... // Target All Subscribed Users Notification::route('Pushmix', 'all')->notify(new AbandonedCart()); // Target Topic One Subscribers Notification::route('Pushmix', 'one')->notify(new AbandonedCart()); // Target Topic Two Subscribers Notification::route('Pushmix', 'two')->notify(new AbandonedCart());
All available methods
-
title('')
: Accepts a string value for the title, required* -
body('')
: Accepts a string value for the notification body,required* -
url('')
: Accepts an url for the notification click event,required* -
button('', '')
: Accepts string value for button title and an url for the notification click event. Max 2 buttons can be attached. -
icon('')
: Accepts an url for the icon. -
priority('')
: Acceptshigh
ornormal
strings. -
ttl('')
: Accepts an integer, notification life span in seconds,must be from 0 to 2,419,200 -
icon('')
: Accepts an url for the icon. -
badge('')
: Accepts an url for the badge. -
image('')
: Accepts an url for the large image.
Testing
Navigate into the package folder vendor/pushmix/laravel-web-notification
and issue following command:
$ composer test
Issues
If you come across any issues please report them here.
Security Vulnerabilities
If you discover a security vulnerability please send an e-mail to support@pushmix.co.uk.
Contributing
Please see CONTRIBUTING for details.
Credits
License
The MIT License (MIT). Please see License File for more information.