_alert; } /** * Set Alert * * @param string $text * @param string $actionLocKey * @param string $locKey * @param array $locArgs * @param string $launchImage * @return Zend_Mobile_Push_Message_Apns */ public function setAlert($text, $actionLocKey=null, $locKey=null, $locArgs=null, $launchImage=null) { if ($text !== null && !is_string($text)) { throw new Zend_Mobile_Push_Message_Exception('$text must be a string'); } if ($actionLocKey !== null && !is_string($actionLocKey)) { throw new Zend_Mobile_Push_Message_Exception('$actionLocKey must be a string'); } if ($locKey !== null && !is_string($locKey)) { throw new Zend_Mobile_Push_Message_Exception('$locKey must be a string'); } if ($locArgs !== null) { if (!is_array($locArgs)) { throw new Zend_Mobile_Push_Message_Exception('$locArgs must be an array of strings'); } else { foreach ($locArgs as $str) { if (!is_string($str)) { throw new Zend_Mobile_Push_Message_Exception('$locArgs contains an item that is not a string'); } } } } if (null !== $launchImage && !is_string($launchImage)) { throw new Zend_Mobile_Push_Message_Exception('$launchImage must be a string'); } $this->_alert = array( 'body' => $text, 'action-loc-key' => $actionLocKey, 'loc-key' => $locKey, 'loc-args' => $locArgs, 'launch-image' => $launchImage, ); return $this; } /** * Get Badge * * @return int */ public function getBadge() { return $this->_badge; } /** * Set Badge * * @param int $badge * @return Zend_Mobile_Push_Message_Apns * @throws Zend_Mobile_Push_Message_Exception */ public function setBadge($badge) { if (!is_null($badge) && !is_numeric($badge)) { throw new Zend_Mobile_Push_Message_Exception('$badge must be an integer'); } if (!is_null($badge) && $badge < 0) { throw new Zend_Mobile_Push_Message_Exception('$badge must be greater or equal to 0'); } $this->_badge = $badge; } /** * Get Expire * * @return int */ public function getExpire() { return $this->_expire; } /** * Set Expire * * @param int $expire * @return Zend_Mobile_Push_Message_Apns * @throws Zend_Mobile_Push_Message_Exception */ public function setExpire($expire) { if (!is_numeric($expire)) { throw new Zend_Mobile_Push_Message_Exception('$expire must be an integer'); } $this->_expire = (int) $expire; return $this; } /** * Get Sound * * @return string */ public function getSound() { return $this->_sound; } /** * Set Sound * * @param string $sound * @return Zend_Mobile_Push_Message_Apns * @throws Zend_Mobile_Push_Message_Exception */ public function setSound($sound) { if (!is_string($sound)) { throw new Zend_Mobile_Push_Message_Exception('$sound must be a string'); } $this->_sound = $sound; return $this; } /** * Add Custom Data * * @param string $key * @param mixed $value * @return Zend_Mobile_Push_Message_Apns * @throws Zend_Mobile_Push_Message_Exception */ public function addCustomData($key, $value) { if (!is_string($key)) { throw new Zend_Mobile_Push_Message_Exception('$key is not a string'); } if ($key == 'aps') { throw new Zend_Mobile_Push_Message_Exception('$key must not be aps as it is reserved by apple'); } $this->_custom[$key] = $value; } /** * Clear Custom Data * * @return throw new Zend_Mobile_Push_Message_Apns */ public function clearCustomData() { $this->_custom = array(); return $this; } /** * Set Custom Data * * @param array $data * @return Zend_Mobile_Push_Message_Apns * @throws Zend_Mobile_Push_Message_Exception */ public function setCustomData($array) { $this->_custom = array(); foreach ($array as $k => $v) { $this->addCustomData($k, $v); } return $this; } /** * Get Custom Data * * @return array */ public function getCustomData() { return $this->_custom; } /** * Validate this is a proper Apns message * * @return boolean */ public function validate() { if (!is_string($this->_token) || strlen($this->_token) === 0) { return false; } if (null != $this->_id && !is_numeric($this->_id)) { return false; } return true; } }