Laravel 极光推送通知频道 极光推送 Laravel 驱动开源项目

我要开发同款
匿名用户2019年03月01日
34阅读
开发技术PHP
所属分类程序开发、常用工具包
授权协议MIT

作品详情

我们在开发针对国内运营的时候进行需要使用过程的几家推送,极光推送则是其中之一。这个包就可以让你方便地在你构建的Laravel应用中进行极光推送的使用。

前提PHP>=7Laravel>=5.5安装

在Laravel应用目录使用Composer进行依赖:

composerrequiremedz/laravel-jpush-notification-channel

包中依赖了匹配的jpush/jpush依赖版本为^3.6,你已经依赖了更低版本的不兼容版本包,使用的时候要小心了!

配置

在config/services.php中进行如下配置:

return['jpush'=>['app_key'=>env('JPUSH_APP_KEY',''),'master_secret'=>env('JPUSH_MASTER_SECRET',''),'apns_production'=>env('JPUSH_APNS_PRODUCTION',false),],];

然后在.env文件中进行配置:

JPUSH_APP_KEY=JPUSH_MASTER_SECRET=JPUSH_APNS_PRODUCTION=使用

首先,要在数据模型上添加一个routeNotificationForJpush方法:

useIlluminate\Foundation\Auth\UserasAuthenticatable;useMedz\Laravel\Notifications\JPush\SenderasJPushSender;classUserextendsAuthenticatable{/***GetNotificationforJPushsender.*@return\Medz\Laravel\Notifications\JPush\Sender*/protectedfunctionrouteNotificationForJpush(){returnnewJPushSender(['platform'=>'all','audience'=>['alias'=>sprintf('user_%d',$this->id),],]);}}

这里我们返回一个Medz\Laravel\Notifications\JPush\Sender实例,可以使用构造参数快速配置,如同上面一样,也可以使用链式调用进行配置。链式调用的API如下:

setPlatform 设置平台,值有all、winphone、android和iossetAudience 推送目标进行设置

setAudience方法或者构造参数中的audience设置参考:推送目标文档。

然后打开通知类,添加一个toJpush 方法,这里我们已app/Notifications/CommentNotification.php 为例:

<?phpnamespaceApp\Notifications;useIlluminate\Notifications\Notification;useMedz\Laravel\Notifications\JPush\MessageasJPushMessage;classCommentNotificationextendsNotification{publicfunctiontoJpush($notifiable){$message=newJPushMessage();//TODO/*======把所有的配置都进行配置===$message->setAlert('Alert.');//简单地给所有平台推送相同的alert消息//自定义消息$message->setMessage('Message',['title'=>'',//通知标题,会填充到toast类型text1字段上'_open_page'=>'',点击打开的页面名称'extras'=>[],//自定义的数据内容]);//iOS通知$message->setNotification(JPushMessage::IOS,'Alert内容',['alert'=>'',//覆盖第二个参数的Alert内,推荐不传,'sound'=>'',//表示通知提示声音,默认填充为空字符串'badge'=>'',//表示应用角标,把角标数字改为指定的数字;为0表示清除,支持'+1','-1'这样的字符串,表示在原有的badge基础上进行增减,默认填充为'+1'///...])//更多通知请参考https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push/#notification官方文档//使用`setNotification`方法第一个常量有三个:IOS/ANDROID/WP//可选参数$message->setOptions([]);//参考https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push/#options*/return$message;}}

toJpush 方法需要返回一个Medz\Laravel\Notifications\JPush\Message 对象实例!

完成上面的配置后,就可以推送了,记得在 via 方法中返回 jpush 这个值哈,例如:

publicfunctionvia(){return['database','jpush'];}

 

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论