alertMsg != null) { $msg = $this->alertMsg->get_alertMsg(); if($msg != null) { $apsMap["alert"] = $msg; } } if ($this->badge >= 0) { $apsMap["badge"] = $this->badge; } if($this -> sound == null || $this->sound == '' ) { $apsMap["sound"] = 'default'; }elseif($this->sound != $this->APN_SOUND_SILENCE) { $apsMap["sound"] = $this->sound; } if (sizeof($apsMap) == 0) { throw new Exception("format error"); } if ($this->contentAvailable > 0) { $apsMap["content-available"] = $this->contentAvailable; } if ($this->category != null && $this->category != "") { $apsMap["category"] = $this->category; } $map = array(); if(count($this->customMsg) > 0){ foreach ($this->customMsg as $key => $value) { $map[$key] = $value; } } $map["aps"] = $apsMap; return json_encode($map); } catch (Exception $e) { throw new Exception("create apn payload error", $e); } } public function add_customMsg($key, $value) { if ($key != null && $key != "" && $value != null) { $this->customMsg[$key] = $value; } } } interface ApnMsg { public function get_alertMsg(); } class DictionaryAlertMsg implements ApnMsg{ var $title; var $body; var $titleLocKey; var $titleLocArgs = array(); var $actionLocKey; var $locKey; var $locArgs = array(); var $launchImage; public function get_alertMsg() { $alertMap = array(); if ($this->title != null && $this->title != "") { $alertMap["title"] = $this->title; } if ($this->body != null && $this->body != "") { $alertMap["body"] = $this->body; } if ($this->titleLocKey != null && $this->titleLocKey != "") { $alertMap["title-loc-key"] = $this->titleLocKey; } if (sizeof($this->titleLocArgs) > 0) { $alertMap["title-loc-args"] = $this->titleLocArgs; } if ($this->actionLocKey != null && $this->actionLocKey) { $alertMap["action-loc-key"] = $this->actionLocKey; } if ($this->locKey != null && $this->locKey != "") { $alertMap["loc-key"] = $this->locKey; } if (sizeof($this->locArgs) > 0) { $alertMap["loc-args"] = $this->locArgs; } if ($this->launchImage != null && $this->launchImage != "") { $alertMap["launch-image"] = $this->launchImage; } if(count($alertMap) == 0) { return null; } return $alertMap; } } class SimpleAlertMsg implements ApnMsg{ var $alertMsg; public function get_alertMsg() { return $this->alertMsg; } } ?>