鼠笼管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

142 lines
3.5 KiB

<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 15-4-10
* Time: 上午11:37
*/
class IGtAPNPayload
{
var $APN_SOUND_SILENCE = "com.gexin.ios.silence";
public static $PAYLOAD_MAX_BYTES = 2048;
var $customMsg = array();
var $badge = -1;
var $sound = "default";
var $contentAvailable = 0;
var $category;
var $alertMsg;
public function get_payload()
{
try {
$apsMap = array();
if ($this->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;
}
}
?>