zoukankan      html  css  js  c++  java
  • 适用于 Laravel 的友盟通知渠道

    适用于 Laravel 的友盟通知渠道

    适用于 Laravel 的友盟消息推送通道适配器

    安装

    composer require "larva/laravel-umeng-notification-channel" -vv
    

    配置

    这个扩展配置分成简单。在 config/services.php 新增友盟设置即可。

     'umeng'=>[
        'AndroidMessage' => [
            'app_key' => '',
            'app_master_secret' => '',
            'mi_activity' => '',
        ],
        'ios' => [
            'app_key' => '',
            'app_master_secret' => '',
        ],
    ],
    

    使用

    编写如下 通知类然后发出去就行了

    namespace AppModels;
    
    class User {
        /**
         * 获取移动端设备属性
         * @return IlluminateDatabaseEloquentModel|IlluminateDatabaseEloquentRelationsHasMany|object
         */
         public function routeNotificationForDevice()
         {
    				 //devices 的关系自行声明 只要关系类有 token、isAndroid 属性即可。
             return $this->devices()->latest('id')->first();
         }
    }
    
    namespace AppNotifications;
    
    use IlluminateNotificationsNotification;
    
    class WelcomeNotification extends Notification
    {
        /**
         * Get the notification's channels.
         *
         * @param mixed $notifiable
         * @return array|string
         */
        public function via($notifiable)
        {
            return [LarvaUMengNotificationsDeviceChannel::class];
        }
    
        /**
         * Build the mail representation of the notification.
         *
         * @param mixed $notifiable
         * @return array
         */
        public function toDevice($notifiable)
        {
            /** @var AppModelsUserDevice $device */
            if (!$device = $notifiable->routeNotificationFor('device', $this)) {
                return false;
            }
    
            $message = [
                'ticker' => '我们刚刚给用户增加了个通知功能。',    // 必填,通知栏提示文字
                'title' => '我们刚刚给用户增加了个通知功能。',    // 必填,通知标题
                'text' => '所以得测试测试好使不好使!',    // 必填,通知文字描述
            ];
            if ($device->isAndroid) {
                $android = new AndroidMessage();
                $android->setDeviceTokens($device->token);
                $android->setType($this->notificationType);//点对点推送
                $android->setPayload('display_type', $this->displayType);//通知消息
                $android->setPayloadBody('ticker', $message['ticker']);// 必填,通知栏提示文字
                $android->setPayloadBody('title', $message['title']);// 必填,通知标题
                $android->setPayloadBody('text', $message['text']);// 必填,通知文字描述
    
                return $android;
            } else {
                $ios = new IOSMessage();
                $ios->setDeviceTokens($device->token);
                $ios->setType($this->notificationType);//点对点推送
                $ios->setPayload('display_type', $this->displayType);//通知消息
                $ios->setAPS('alert', [
                    'title' => $message['ticker'],
                    'subtitle' => $message['title'],
                    'body' => $message['text'],
                ]);
                return $ios;
            }
        }
    }
    
  • 相关阅读:
    clickhouse-(04)-常用高阶函数
    clickhouse-(03)-库和表引擎
    clickhouse-(02)-适合的场景
    clickhouse-(01)-安装
    MySQL实战45讲-笔记
    Linux软连接和硬链接
    直接访问和间接访问
    指针和地址的区别
    配置Apache 运行CGI---------笔记
    配置Apache 运行CGI
  • 原文地址:https://www.cnblogs.com/fyblzds/p/12780274.html
Copyright © 2011-2022 走看看