使用Yii1.1框架怎么實(shí)現(xiàn)PHP極光推送消息通知功能-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)使用Yii1.1框架怎么實(shí)現(xiàn)PHP極光推送消息通知功能,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

成都創(chuàng)新互聯(lián)公司堅(jiān)信:善待客戶,將會(huì)成為終身客戶。我們能堅(jiān)持多年,是因?yàn)槲覀円恢笨芍档眯刨嚒N覀儚牟缓鲇瞥踉L客戶,我們用心做好本職工作,不忘初心,方得始終。十余年網(wǎng)站建設(shè)經(jīng)驗(yàn)成都創(chuàng)新互聯(lián)公司是成都老牌網(wǎng)站營(yíng)銷服務(wù)商,為您提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)、H5響應(yīng)式網(wǎng)站、網(wǎng)站制作、品牌網(wǎng)站建設(shè)、微信小程序定制開發(fā)服務(wù),給眾多知名企業(yè)提供過(guò)好品質(zhì)的建站服務(wù)。

一、下載極光推送PHP SDK,解壓后放在/protected/components/目錄下,如下圖所示:

使用Yii1.1框架怎么實(shí)現(xiàn)PHP極光推送消息通知功能

二、完善修改下官方的demo例子,我這里復(fù)制一份demo,改為NotifyPush.php,如下代碼:

<?php
require dirname(__FILE__) . '/jpush-api-php-client/autoload.php';
use JPush\Client as JPush;
class NotifyPush {
 static function pushAlias($alias,$ticket='消息提醒',$alert){
  $appKey=Yii::app()->params['push']['AppKey'];
  $appMasterSecret=Yii::app()->params['push']['AppMasterSecret'];
  $production_mode=Yii::app()->params['push']['production_mode'];
  $client = new JPush($appKey, $appMasterSecret);
// 完整的推送示例
// 這只是使用樣例,不應(yīng)該直接用于實(shí)際生產(chǎn)環(huán)境中 !!
  try {
   $response = $client->push()
    ->setPlatform(array('ios', 'android'))
    // 一般情況下,關(guān)于 audience 的設(shè)置只需要調(diào)用 addAlias、addTag、addTagAnd 或 addRegistrationId
    // 這四個(gè)方法中的某一個(gè)即可,這里僅作為示例,當(dāng)然全部調(diào)用也可以,多項(xiàng) audience 調(diào)用表示其結(jié)果的交集
    // 即是說(shuō)一般情況下,下面三個(gè)方法和沒(méi)有列出的 addTagAnd 一共四個(gè),只適用一個(gè)便可滿足大多數(shù)的場(chǎng)景需求
    ->addAlias($alias)
    ->setNotificationAlert($alert)
    ->iosNotification($ticket, array(
     'sound' => 'sound.caf',
     // 'badge' => '+1',
     // 'content-available' => true,
     // 'mutable-content' => true,
     'category' => 'jiguang',
     'extras' => array(
      'key' => 'value',
      'jiguang'
     ),
    ))
    ->androidNotification($ticket, array(
     'title' => $alert,
     // 'build_id' => 2,
     'extras' => array(
      'key' => 'value',
      'jiguang'
     ),
    ))
    ->message($alert, array(
     'title' => $alert,
     // 'content_type' => 'text',
     'extras' => array(
      'key' => 'value',
      'jiguang'
     ),
    ))
    ->options(array(
     // sendno: 表示推送序號(hào),純粹用來(lái)作為 API 調(diào)用標(biāo)識(shí),
     // API 返回時(shí)被原樣返回,以方便 API 調(diào)用方匹配請(qǐng)求與返回
     // 這里設(shè)置為 100 僅作為示例
     // 'sendno' => 100,
     // time_to_live: 表示離線消息保留時(shí)長(zhǎng)(秒),
     // 推送當(dāng)前用戶不在線時(shí),為該用戶保留多長(zhǎng)時(shí)間的離線消息,以便其上線時(shí)再次推送。
     // 默認(rèn) 86400 (1 天),最長(zhǎng) 10 天。設(shè)置為 0 表示不保留離線消息,只有推送當(dāng)前在線的用戶可以收到
     // 這里設(shè)置為 1 僅作為示例
     // 'time_to_live' => 1,
     // apns_production: 表示APNs是否生產(chǎn)環(huán)境,
     // True 表示推送生產(chǎn)環(huán)境,F(xiàn)alse 表示要推送開發(fā)環(huán)境;如果不指定則默認(rèn)為推送生產(chǎn)環(huán)境
     'apns_production' => $production_mode,
     // big_push_duration: 表示定速推送時(shí)長(zhǎng)(分鐘),又名緩慢推送,把原本盡可能快的推送速度,降低下來(lái),
     // 給定的 n 分鐘內(nèi),均勻地向這次推送的目標(biāo)用戶推送。較大值為1400.未設(shè)置則不是定速推送
     // 這里設(shè)置為 1 僅作為示例
     // 'big_push_duration' => 1
    ))
    ->send();
   print_r($response);
  } catch (\JPush\Exceptions\APIConnectionException $e) {
   // try something here
   print $e;
  } catch (\JPush\Exceptions\APIRequestException $e) {
   // try something here
   print $e;
  }
 }
 static function pushAll($ticket='消息提醒',$alert){
  $appKey=Yii::app()->params['push']['AppKey'];
  $appMasterSecret=Yii::app()->params['push']['AppMasterSecret'];
  $production_mode=Yii::app()->params['push']['production_mode'];
  $client = new JPush($appKey, $appMasterSecret);
// 完整的推送示例
// 這只是使用樣例,不應(yīng)該直接用于實(shí)際生產(chǎn)環(huán)境中 !!
  try {
   $response = $client->push()
    ->setPlatform(array('ios', 'android'))
    ->setAudience('all')
    // 一般情況下,關(guān)于 audience 的設(shè)置只需要調(diào)用 addAlias、addTag、addTagAnd 或 addRegistrationId
    // 這四個(gè)方法中的某一個(gè)即可,這里僅作為示例,當(dāng)然全部調(diào)用也可以,多項(xiàng) audience 調(diào)用表示其結(jié)果的交集
    // 即是說(shuō)一般情況下,下面三個(gè)方法和沒(méi)有列出的 addTagAnd 一共四個(gè),只適用一個(gè)便可滿足大多數(shù)的場(chǎng)景需求
    ->setNotificationAlert($alert)
    ->iosNotification($ticket, array(
     'sound' => 'sound.caf',
     // 'badge' => '+1',
     // 'content-available' => true,
     // 'mutable-content' => true,
     'category' => 'jiguang',
     'extras' => array(
      'key' => 'value',
      'jiguang'
     ),
    ))
    ->androidNotification($ticket, array(
     'title' => $alert,
     // 'build_id' => 2,
     'extras' => array(
      'key' => 'value',
      'jiguang'
     ),
    ))
    ->message($alert, array(
     'title' => $alert,
     // 'content_type' => 'text',
     'extras' => array(
      'key' => 'value',
      'jiguang'
     ),
    ))
    ->options(array(
     // sendno: 表示推送序號(hào),純粹用來(lái)作為 API 調(diào)用標(biāo)識(shí),
     // API 返回時(shí)被原樣返回,以方便 API 調(diào)用方匹配請(qǐng)求與返回
     // 這里設(shè)置為 100 僅作為示例
     // 'sendno' => 100,
     // time_to_live: 表示離線消息保留時(shí)長(zhǎng)(秒),
     // 推送當(dāng)前用戶不在線時(shí),為該用戶保留多長(zhǎng)時(shí)間的離線消息,以便其上線時(shí)再次推送。
     // 默認(rèn) 86400 (1 天),最長(zhǎng) 10 天。設(shè)置為 0 表示不保留離線消息,只有推送當(dāng)前在線的用戶可以收到
     // 這里設(shè)置為 1 僅作為示例
     // 'time_to_live' => 1,
     // apns_production: 表示APNs是否生產(chǎn)環(huán)境,
     // True 表示推送生產(chǎn)環(huán)境,F(xiàn)alse 表示要推送開發(fā)環(huán)境;如果不指定則默認(rèn)為推送生產(chǎn)環(huán)境
     'apns_production' => $production_mode,
     // big_push_duration: 表示定速推送時(shí)長(zhǎng)(分鐘),又名緩慢推送,把原本盡可能快的推送速度,降低下來(lái),
     // 給定的 n 分鐘內(nèi),均勻地向這次推送的目標(biāo)用戶推送。較大值為1400.未設(shè)置則不是定速推送
     // 這里設(shè)置為 1 僅作為示例
     // 'big_push_duration' => 1
    ))
    ->send();
   print_r($response);
  } catch (\JPush\Exceptions\APIConnectionException $e) {
   // try something here
   print $e;
  } catch (\JPush\Exceptions\APIRequestException $e) {
   // try something here
   print $e;
  }
 }
}

三、調(diào)用NotifyPush.php里的方法,實(shí)現(xiàn)推送,如下代碼:

class CronNotifyPushCommand extends CConsoleCommand{
 public $keys=array();
 public function init(){
  parent::init();
 }
 public function actionIndex(){
  echo 'start CronNotifyPushCommand '.chr(10);
  if(!Yii::app()->params['push']['push_status']){
   echo 'push status disabled';die();
  }
  $rkey='message_notify_list';
  $waitTotals=Fredis::model()->redis->lsize($rkey);
  echo 'wait totals:'.$waitTotals.chr(10);
  $waitResult=true;
  $i=0;
  while($waitResult) {$i++;
   echo $i.'/'.$waitTotals.' wait to do'.chr(10);
   $waitResult=Fredis::model()->redis->rpop($rkey);
   if(!$waitResult) {
    continue;
   }
   $db_data=unserialize($waitResult);var_dump($db_data);
   $message_content=$db_data['message_content'];
   $uid=$db_data['uid'];
   $alias=$uid;
   if($uid==0){
    NotifyPush::pushAll($message_content, $message_content);
   }else {
    NotifyPush::pushAlias($alias, $message_content, $message_content);
   }
  }
  echo 'end'.chr(10);
 }
}

php有什么特點(diǎn)

1、執(zhí)行速度快。2、具有很好的開放性和可擴(kuò)展性。3、PHP支持多種主流與非主流的數(shù)據(jù)庫(kù)。4、面向?qū)ο缶幊蹋篜HP提供了類和對(duì)象。5、版本更新速度快。6、具有豐富的功能。7、可伸縮性。8、功能全面,包括圖形處理、編碼與解碼、壓縮文件處理、xml解析等。

以上就是使用Yii1.1框架怎么實(shí)現(xiàn)PHP極光推送消息通知功能,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站欄目:使用Yii1.1框架怎么實(shí)現(xiàn)PHP極光推送消息通知功能-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)網(wǎng)址:http://muchs.cn/article40/djgieo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷、動(dòng)態(tài)網(wǎng)站用戶體驗(yàn)、關(guān)鍵詞優(yōu)化、企業(yè)網(wǎng)站制作、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作