_reg_arr = $regArr; } /** * 发送消息 * @param $title * @param $desc * @param $url // 参考 /views/Reader?send_order_id=1643289&bid=vdqY7p15xnZQzK4VzzgmMD6wG2yr8BNX&chapter_id=4774851 * @return mixed */ public function sendMessage($title, $desc, $url) { $sender = new Sender(); $message = $this->buildMessage($title, $desc, $url); $result = $sender->sendHybridMessageByRegId($message, $this->_reg_arr)->getRaw(); $this->logPush(__FUNCTION__, 'result', compact('result')); return $result; } /** * 向所有设备发送消息 * @param $title * @param $desc * @param $url * @return mixed */ public function sendMessageToAll($title, $desc, $url) { $sender = new Sender(); $message = $this->buildMessage($title, $desc, $url); $result = $sender->broadcastAll($message)->getRaw(); $this->logPush(__FUNCTION__, 'result', compact('result')); return $result; } /** * @param $title * @param $desc * @param $url * @param int $pusType * @param string $payload * @return Builder */ private function buildMessage($title, $desc, $url, $pusType = 0, $payload = '') { $message = new Builder(); $message->title($title); // 通知栏的title $message->description($desc); // 通知栏的descption $message->passThrough($pusType); // 这是一条通知栏消息,如果需要透传,把这个参数设置成1,同时去掉title和descption两个参数 $message->notifyType(1); $message->extra(Builder::HYBRID_PATH, $url); // 此处设置预定义点击行为,1为打开app // $message->extra(Builder::notifyEffect, 2); // 此处设置预定义点击行为,1为打开app 2通知栏点击后打开app的任一Activity // $message->extra(Builder::notifyForeground, 1); // 应用在前台是否展示通知,如果不希望应用在前台时候弹出通知,则设置这个参数为0 $message->extra(Builder::flowControl, 3000); // 设置平滑推送, 推送速度3000每秒(qps=3000) $message->notifyId(2); // 通知类型。最多支持0-4 5个取值范围,同样的类型的通知会互相覆盖,不同类型可以在通知栏并存 $message->build(); return $message; } /** * @param $className * @param $message * @param array $data */ private function logPush($className, $message, $data = []) { var_dump('[' . $className . '] ' . $message, $data); myLog('push')->info('[XiaoMi] [' . $className . '] ' . $message, $data); } }