我们在开发针对国内运营的时候进行需要使用过程的几家推送,极光推送则是其中之一。这个包就可以让你方便地在你构建的Laravel应用中进行极光推送的使用。
前提PHP>=7Laravel>=5.5安装在Laravel应用目录使用Composer进行依赖:
composerrequiremedz/laravel-jpush-otificatio-chael包中依赖了匹配的jpush/jpush依赖版本为^3.6,你已经依赖了更低版本的不兼容版本包,使用的时候要小心了!
配置在cofig/services.php中进行如下配置:
retur['jpush'=>['app_key'=>ev('JPUSH_APP_KEY',''),'master_secret'=>ev('JPUSH_MASTER_SECRET',''),'aps_productio'=>ev('JPUSH_APNS_PRODUCTION',false),],];然后在.ev文件中进行配置:
JPUSH_APP_KEY=JPUSH_MASTER_SECRET=JPUSH_APNS_PRODUCTION=使用首先,要在数据模型上添加一个routeNotificatioForJpush方法:
useIllumiate\Foudatio\Auth\UserasAutheticatable;useMedz\Laravel\Notificatios\JPush\SederasJPushSeder;classUserextedsAutheticatable{/***GetNotificatioforJPushseder.*@retur\Medz\Laravel\Notificatios\JPush\Seder*/protectedfuctiorouteNotificatioForJpush(){returewJPushSeder(['platform'=>'all','audiece'=>['alias'=>spritf('user_%d',$this->id),],]);}}这里我们返回一个Medz\Laravel\Notificatios\JPush\Seder实例,可以使用构造参数快速配置,如同上面一样,也可以使用链式调用进行配置。链式调用的API如下:
setPlatform 设置平台,值有all、wiphoe、adroid和iossetAudiece 推送目标进行设置setAudiece方法或者构造参数中的audiece设置参考:推送目标文档。
然后打开通知类,添加一个toJpush 方法,这里我们已app/Notificatios/CommetNotificatio.php 为例:
<?phpamespaceApp\Notificatios;useIllumiate\Notificatios\Notificatio;useMedz\Laravel\Notificatios\JPush\MessageasJPushMessage;classCommetNotificatioextedsNotificatio{publicfuctiotoJpush($otifiable){$message=ewJPushMessage();//TODO/*======把所有的配置都进行配置===$message->setAlert('Alert.');//简单地给所有平台推送相同的alert消息//自定义消息$message->setMessage('Message',['title'=>'',//通知标题,会填充到toast类型text1字段上'_ope_page'=>'',点击打开的页面名称'extras'=>[],//自定义的数据内容]);//iOS通知$message->setNotificatio(JPushMessage::IOS,'Alert内容',['alert'=>'',//覆盖第二个参数的Alert内,推荐不传,'soud'=>'',//表示通知提示声音,默认填充为空字符串'badge'=>'',//表示应用角标,把角标数字改为指定的数字;为0表示清除,支持'+1','-1'这样的字符串,表示在原有的badge基础上进行增减,默认填充为'+1'///...])//更多通知请参考https://docs.jiguag.c/jpush/server/push/rest_api_v3_push/#otificatio官方文档//使用`setNotificatio`方法第一个常量有三个:IOS/ANDROID/WP//可选参数$message->setOptios([]);//参考https://docs.jiguag.c/jpush/server/push/rest_api_v3_push/#optios*/retur$message;}}toJpush 方法需要返回一个Medz\Laravel\Notificatios\JPush\Message 对象实例!
完成上面的配置后,就可以推送了,记得在 via 方法中返回 jpush 这个值哈,例如:
publicfuctiovia(){retur['database','jpush'];}
评论