消息推送方式

消息推送方式

1. 对单个用户推送消息

1.1 描述

向单个clientid或别名用户推送消息。

注:个推使用clientid来标识每个独立的用户,每一台终端上每一个app拥有一个独立的clientid。

1.2 应用场景

  • **场景1**:某用户发生了一笔交易,银行及时下发一条推送消息给该用户。
  • **场景2**:用户定制了某本书的预订更新,当本书有更新时,需要向该用户及时下发一条更新提醒信息。这些需要向指定某个用户推送消息的场景,即需要使用对单个用户推送消息的接口。

1.3 接口说明

接口名称 支持推送类型 说明
pushMessageToSingle 透传(payload)、点击通知启动应用、点击通知打开网页等 对单个用户(ClientID)推送

正常推送不需要传requestId,如果发生异常重试时将requestId传入,具体用法详见示例代码

pushMessageToSingle($message, $target, $requestId = null)

1.4 pushMessageToSingle代码实例

<?php
//消息推送Demo
header("Content-Type: text/html; charset=utf-8");
require_once(dirname(__FILE__) . '/' . 'IGt.Push.php');

//采用"PHP SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置
define('APPKEY','');
define('APPID','');
define('MASTERSECRET','');
define('HOST','http://sdk.open.api.igexin.com/apiex.htm');
define('CID','请输入您的CID');
//别名推送方式
//define('Alias','请输入您的Alias');

pushMessageToSingle();

//单推接口案例
function pushMessageToSingle(){
    $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);

    //消息模版:
    // 4.NotyPopLoadTemplate:通知弹框下载功能模板
    $template = IGtNotyPopLoadTemplateDemo();


    //定义"SingleMessage"
    $message = new IGtSingleMessage();

    $message->set_isOffline(true);//是否离线
    $message->set_offlineExpireTime(3600*12*1000);//离线时间
    $message->set_data($template);//设置推送消息类型
    //$message->set_PushNetWorkType(0);//设置是否根据WIFI推送消息,2为4G/3G/2G,1为wifi推送,0为不限制推送
    //接收方
    $target = new IGtTarget();
    $target->set_appId(APPID);
    $target->set_clientId(CID);
//    $target->set_alias(Alias);

    try {
        $rep = $igt->pushMessageToSingle($message, $target);
        var_dump($rep);
        echo ("<br><br>");

    }catch(RequestException $e){
        $requstId =e.getRequestId();
        //失败时重发
        $rep = $igt->pushMessageToSingle($message, $target,$requstId);
        var_dump($rep);
        echo ("<br><br>");
    }
}

function IGtNotyPopLoadTemplateDemo(){
        $template =  new IGtNotyPopLoadTemplate();
        $template ->set_appId(APPID);                      //应用appid
        $template ->set_appkey(APPKEY);                    //应用appkey
        //通知栏
        $template ->set_notyTitle("个推");                 //通知栏标题
        $template ->set_notyContent("个推最新版点击下载"); //通知栏内容
        $template ->set_notyIcon("");                      //通知栏logo
        $template ->set_isBelled(true);                    //是否响铃
        $template ->set_isVibrationed(true);               //是否震动
        $template ->set_isCleared(true);                   //通知栏是否可清除
        //弹框
        $template ->set_popTitle("弹框标题");              //弹框标题
        $template ->set_popContent("弹框内容");            //弹框内容
        $template ->set_popImage("");                      //弹框图片
        $template ->set_popButton1("下载");                //左键
        $template ->set_popButton2("取消");                //右键
        //下载
        $template ->set_loadIcon("");                      //弹框图片
        $template ->set_loadTitle("地震速报下载");
        $template ->set_loadUrl("http://dizhensubao.igexin.com/dl/com.ceic.apk");
        $template ->set_isAutoInstall(false);
        $template ->set_isActived(true);

        //设置通知定时展示时间,结束时间与开始时间相差需大于6分钟,消息推送后,客户端将在指定时间差内展示消息(误差6分钟)
        $begin = "2015-02-28 15:26:22";
        $end = "2015-02-28 15:31:24";
        $template->set_duration($begin,$end);
        return $template;
}
?>

1.5 返回值

字段 返回码
返回值 请点击Result返回值
客户端展示

2. 对指定列表用户推送消息

2.1 接口说明

如果仅对单个用户推送务必使用单推接口,否则会严重影响推送性能,如果对少量甚至几个用户推送同样的消息,建议使用单推实现,性能会更高

接口名称 支持推送类型 说明
pushMessageToList 透传(payload)、点击通知启动应用、点击通知打开网页等 (通过clientid列表)群推,可查看clientid列表中每个用户的在线状态

2.2 应用场景

  • * 场景1,对于抽奖活动的应用,需要对已知的某些用户推送中奖消息,就可以通过ClientID列表方式推送消息。
  • * 场景2,向新客用户发放抵用券,提升新客的转化率,就可以事先提取新客列表,将消息指定发送给这部分指定CID用户。

2.3 pushMessageToList代码实例

<?php
//消息推送Demo
header("Content-Type: text/html; charset=utf-8");
require_once(dirname(__FILE__) . '/' . 'IGt.Push.php');

//采用"PHP SDK 快速入门""第二步 获取访问凭证 "中获得的应用配置
define('APPKEY','');
define('APPID','');
define('MASTERSECRET','');
define('HOST','http://sdk.open.api.igexin.com/apiex.htm');
define('CID1','请输入您的CID1');
define('CID2','请输入您的CID2');
//define('Alias1','请输入您的Alias1');
//define('Alias2','请输入您的Alias2');

pushMessageToList();

//多推接口案例
function pushMessageToList(){
    putenv("gexin_pushList_needDetails=true");
    $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
    //$igt = new IGeTui('',APPKEY,MASTERSECRET);//此方式可通过获取服务端地址列表判断最快域名后进行消息推送,每10分钟检查一次最快域名
    //消息模版:
    // LinkTemplate:通知打开链接功能模板
    $template = IGtLinkTemplateDemo();


    //定义"ListMessage"信息体
    $message = new IGtListMessage();
    $message->set_isOffline(true);//是否离线
    $message->set_offlineExpireTime(3600*12*1000);//离线时间
    $message->set_data($template);//设置推送消息类型
    $message->set_PushNetWorkType(1);//设置是否根据WIFI推送消息,1为wifi推送,0为不限制推送
    $contentId = $igt->getContentId($message);
    //接收方1  
    $target1 = new IGtTarget();
    $target1->set_appId(APPID);
    $target1->set_clientId(CID1);
    //$target1->set_alias(Alias1);
    //接收方2
    $target2 = new IGtTarget();
    $target2->set_appId(APPID);
    $target2->set_clientId(CID2);
    //$target2->set_alias(Alias2);


    $targetList[0] = $target1;
    $targetList[1] = $target2;

    $rep = $igt->pushMessageToList($contentId, $targetList);
    var_dump($rep);
    echo ("<br><br>");
}

function IGtLinkTemplateDemo(){
        $template =  new IGtLinkTemplate();
        $template ->set_appId(APPID);                  //应用appid
        $template ->set_appkey(APPKEY);                //应用appkey
        $template ->set_title("请输入通知标题");       //通知栏标题
        $template ->set_text("请输入通知内容");        //通知栏内容
        $template->set_logo("");                       //通知栏logo
        $template->set_logoURL("");                    //通知栏logo链接
        $template ->set_isRing(true);                  //是否响铃
        $template ->set_isVibrate(true);               //是否震动
        $template ->set_isClearable(true);             //通知栏是否可清除
        $template ->set_url("http://www.igetui.com/"); //打开连接地址
        //设置通知定时展示时间,结束时间与开始时间相差需大于6分钟,消息推送后,客户端将在指定时间差内展示消息(误差6分钟)
        $begin = "2015-02-28 15:26:22";
        $end = "2015-02-28 15:31:24";
        $template->set_duration($begin,$end);

        // iOS推送需要设置的pushInfo字段(老方法不再介意使用)
        //$template ->set_pushInfo($actionLocKey,$badge,$message,$sound,$payload,$locKey,$locArgs,$launchImage);
        //$template ->set_pushInfo("",2,"","","","","","");
         //iOS推送需要设置的pushInfo字段(推荐使用)
//        $apn = new IGtAPNPayload();
//        $apn->alertMsg = "alertMsg";
//        $apn->badge = 11;
//        $apn->actionLocKey = "启动";
//        $apn->category = "ACTIONABLE";
//        $apn->contentAvailable = 1;
//        $apn->locKey = "通知栏内容";
//        $apn->title = "通知栏标题";
//        $apn->titleLocArgs = array("titleLocArgs");
//        $apn->titleLocKey = "通知栏标题";
//        $apn->body = "body";
//        $apn->customMsg = array("payload"=>"payload");
//        $apn->launchImage = "launchImage";
//        $apn->locArgs = array("locArgs");
//
//        $apn->sound=("test1.wav");;
//        $template->set_apnInfo($apn);
        return $template;
}
?>

2.4 返回值

字段 返回码
返回值 请点击Result返回值
客户端展示

注:此接口有频次控制,申请修改请联系邮箱:kegf@getui.com 。

3. 对指定应用群推消息

3.1 接口说明

接口名称 支持推送类型 说明
pushMessageToApp 透传(payload)、点击通知启动应用、点击通知打开网页等 (通过应用AppID)群推,给所有符合条件的客户端用户推送

3.2 应用场景

  • **场景1**:某app周年庆,群发消息给该app的所有用户,提醒用户参加周年庆活动。

3.3 pushMessageToApp代码实例

<?php
//消息推送Demo
header("Content-Type: text/html; charset=utf-8");
require_once(dirname(__FILE__) . '/' . 'IGt.Push.php');
define('APPKEY','请输入您的APPKEY');
define('APPID','请输入您的APPID');
define('MASTERSECRET','请输入您的MASTERSECRET');
define('HOST','http://sdk.open.api.igexin.com/apiex.htm');
define('CID','请输入您的CID');
pushMessageToApp();
function pushMessageToApp(){
    $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
    $template = IGtLinkTemplateDemo();
    //个推信息体
    //基于应用消息体
    $message = new IGtAppMessage();
    $message->set_isOffline(true);
    $message->set_offlineExpireTime(10 * 60 * 1000);//离线时间单位为毫秒,例,两个小时离线为3600*1000*2
    $message->set_data($template);

    $appIdList=array(APPID);
    $phoneTypeList=array('ANDROID');
    $provinceList=array('浙江');
    $tagList=array('haha');

    $cdt = new AppConditions();
    $cdt->addCondition(AppConditions::PHONE_TYPE, $phoneTypeList);
    $cdt->addCondition(AppConditions::REGION, $provinceList);
    $cdt->addCondition(AppConditions::TAG, $tagList);

    $message->set_appIdList($appIdList);
    $message->set_conditions($cdt);

    $rep = $igt->pushMessageToApp($message);

    var_dump($rep);
    echo ("<br><br>");
}

function IGtLinkTemplateDemo(){
    $template =  new IGtLinkTemplate();
    $template ->set_appId(APPID);//应用appid
    $template ->set_appkey(APPKEY);//应用appkey
    $template ->set_title("请输入通知标题");//通知栏标题
    $template ->set_text("请输入通知内容");//通知栏内容
    $template ->set_logo("");//通知栏logo
    $template ->set_isRing(true);//是否响铃
    $template ->set_isVibrate(true);//是否震动
    $template ->set_isClearable(true);//通知栏是否可清除
    $template ->set_url("http://www.getui.com/");//打开连接地址
    //$template->set_notifyStyle(0);
    //$template->set_duration(BEGINTIME,ENDTIME); //设置ANDROID客户端在此时间区间内展示消息
    //iOS推送需要设置的pushInfo字段
//        $apn = new IGtAPNPayload();
//        $apn->alertMsg = "alertMsg";
//        $apn->badge = 11;
//        $apn->actionLocKey = "启动";
//    //        $apn->category = "ACTIONABLE";
//    //        $apn->contentAvailable = 1;
//        $apn->locKey = "通知栏内容";
//        $apn->title = "通知栏标题";
//        $apn->titleLocArgs = array("titleLocArgs");
//        $apn->titleLocKey = "通知栏标题";
//        $apn->body = "body";
//        $apn->customMsg = array("payload"=>"payload");
//        $apn->launchImage = "launchImage";
//        $apn->locArgs = array("locArgs");
//
//        $apn->sound=("test1.wav");;
//        $template->set_apnInfo($apn);
    return $template;
}
?>

按城市接口推送

城市级别的推送基于个推原先的按省份推送的功能之上,使用同一个方法,这样可以减少开发者使用过程中的代码变更。省略具体的推送代码,下面展示相关变动的代码。

原来的省份推送是这样使用的:

$cdt = new AppConditions();
$provinceList=array('浙江','上海','北京');
$cdt->addCondition(AppConditions::REGION, $provinceList);

现在按城市推送的使用方法如下:

$cdt = new AppConditions();
$provinceList=array('浙江','上海','北京');
array_push($myarray, "33010000");   //杭州市
array_push($myarray, "51010000");   //成都市
$cdt->addCondition(AppConditions::REGION, $provinceList);

只需要在原有的列表里加入城市编号即可。

注1:编号对应表如region_code.data文件。

注2:列表里的城市仅支持编号表示,建议省份也用编号表示。为了兼容老用户,省份列表里的汉字仍能继续使用。

3.4 返回值

字段 返回码
返回值 请点击Result返回值
客户端展示

注:此接口有频次控制,申请修改请联系邮箱:kegf@getui.com 。

4. 任务组名推送

4.1 描述

一个应用同时下发了n个推送任务,为了更好地跟踪这n个任务的推送效果,可以把他们组成一个任务组,在查询数据时,只需要输入该任务组名即可同时查到n个任务的数据结果。

4.2 应用场景

  • 场景:做AB test,分别下发A组、B组推送任务,将A、B任务建成“任务组1”,查数据时,仅需要查找任务组1,即可以一起看到A、B两组测试的结果,可以更直观地对比数据。

4.3 对应接口

命名同一个应用的不同taskid为同一个任务组名,任务组名由第三方填写。tolist(对指定用户列表推送消息)、toapp(对指定应用群推消息)接口支持该功能。

4.3.1 Tolist接口代码实例

function toListGroupName($host, $appkey, $mastersecret, $message, $taskGroupName) {
    $igt = new IGeTui($host, $appkey, $mastersecret);
    $contentId = $igt->getContentId($message,"toList任务别名功能");
}

4.3.2 Toapp接口代码实例**

function toAppGroupName($host, $appkey, $mastersecret, $message, $taskGroupName) {
    $igt = new IGeTui($host, $appkey, $mastersecret);
    $igt->pushMessageToApp($message, $taskGroupName);
}

5. 应用群推条件交并补功能

5.1 描述

应用群推对于复杂的查询条件新增加的交并补功能,以对应查询语义中的与或非的关系

5.2 应用场景

  • 场景:需要发送给城市在A,B,C里面,没有设置tagtest标签,手机型号为android的用户,用条件交并补功能可以实现,city(A|B|C) && !tag(tagtest) && phonetype(andriod)

5.3 对应接口

// AppConditions类的实例方法
AppConditions addCondition($key, $values, $optType)
参数说明:
参数名 类型 必需 默认值 参数描述
$key String 查询条件键(phoneType 手机类型,region 省市,tag 用户标签)
$values List 查询条件值列表
$optType OptType OptType._NOT_ 条件类型(OptType._OR_ 或, OptType._AND_ 与, OptType._NOT_ 非)

5.4 代码实例

<?php

header("Content-Type: text/html; charset=utf-8");

require_once(dirname(__FILE__) . '/' . 'IGt.Push.php');
require_once(dirname(__FILE__) . '/' . 'igetui/IGt.AppMessage.php');
require_once(dirname(__FILE__) . '/' . 'igetui/IGt.APNPayload.php');
require_once(dirname(__FILE__) . '/' . 'igetui/template/IGt.BaseTemplate.php');
require_once(dirname(__FILE__) . '/' . 'IGt.Batch.php');
require_once(dirname(__FILE__) . '/' . 'igetui/utils/AppConditions.php');

//http的域名
define('HOST','');
//定义常量, appId、appKey、masterSecret 采用本文档 "第二步 获取访问凭证 "中获得的应用配置               
define('APPKEY','');
define('APPID','');
define('MASTERSECRET','');

pushMessageToApp();

function pushMessageToApp(){
    $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
    $template = IGtLinkTemplateDemo();
    //个推信息体
    //基于应用消息体
    $message = new IGtAppMessage();
    $message->set_isOffline(true);
    $message->set_offlineExpireTime(10 * 60 * 1000);//离线时间单位为毫秒,例,两个小时离线为3600*1000*2
    $message->set_data($template);

    $appIdList=array(APPID);
    $phoneTypeList=array('ANDROID');
    $provinceList=array('浙江');
    $tagList=array('haha');


    $cdt = new AppConditions();
    $cdt->addCondition(AppConditions::PHONE_TYPE, $phoneTypeList, OptType::_OR_);
    $cdt->addCondition(AppConditions::REGION, $provinceList,OptType::_AND_);
    $cdt->addCondition(AppConditions::TAG, $tagList, OptType::_OR_);

    $message->set_appIdList($appIdList);
    $message->set_conditions($cdt);

    $rep = $igt->pushMessageToApp($message);

    var_dump($rep);
}


function IGtLinkTemplateDemo(){
    $template =  new IGtLinkTemplate();
    $template ->set_appId(APPID);//应用appid
    $template ->set_appkey(APPKEY);//应用appkey
    $template ->set_title("请输入通知标题");//通知栏标题
    $template ->set_text("请输入通知内容");//通知栏内容
    $template ->set_logo("");//通知栏logo
    $template ->set_isRing(true);//是否响铃
    $template ->set_isVibrate(true);//是否震动
    $template ->set_isClearable(true);//通知栏是否可清除
    $template ->set_url("http://www.igetui.com/");//打开连接地址
    return $template;
}
?>

6. 批量单推功能

6.1 描述

用于一次创建提交多个单推任务。

6.2应用场景

当单推任务较多时,推荐使用该接口,可以减少与服务端的交互次数。

6.3 对应接口

函数说明:

接口定义 说明
add($message, $target) 追加单推消息
submit() 提交消息
retry() 重新提交

参数说明:

推送参数message和target与对单个用户推送消息使用的的参数相同

推送返回值:

批量单推每个单推消息的返回结果在submit返回值的info字段中,具体为加入时的序号和对应的返回结果。返回值详情请点击Result返回值

代码实例:

<?php
//批量单推Demo
header("Content-Type: text/html; charset=utf-8");
require_once(dirname(__FILE__) . '/' . 'IGt.Push.php');
define('APPKEY','请输入您的APPKEY');
define('APPID','请输入您的APPID');
define('MASTERSECRET','请输入您的MASTERSECRET');
define('HOST','http://sdk.open.api.igexin.com/apiex.htm');
define('CID1','请输入您的CID1');
define('CID2','请输入您的CID2');
pushMessageToSingleBatch();
function pushMessageToSingleBatch()
{
    $igt = new IGeTui(HOST, APPKEY, MASTERSECRET);
    $batch = new IGtBatch(APPKEY, $igt);
    $batch->setApiUrl(HOST);
    //$igt->connect();
    //消息模版:
    // 1.TransmissionTemplate:透传功能模板
    // 2.LinkTemplate:通知打开链接功能模板
    // 3.NotificationTemplate:通知透传功能模板
    // 4.NotyPopLoadTemplate:通知弹框下载功能模板

    //$template = IGtNotyPopLoadTemplateDemo();
    $templateLink = IGtLinkTemplateDemo();
    $templateNoti = IGtNotificationTemplateDemo();
    //$template = IGtTransmissionTemplateDemo();

    //个推信息体
    $messageLink = new IGtSingleMessage();
    $messageLink->set_isOffline(true);//是否离线
    $messageLink->set_offlineExpireTime(12 * 1000 * 3600);//离线时间
    $messageLink->set_data($templateLink);//设置推送消息类型
    //$messageLink->set_PushNetWorkType(1);//设置是否根据WIFI推送消息,1为wifi推送,0为不限制推送

    $targetLink = new IGtTarget();
    $targetLink->set_appId(APPID);
    $targetLink->set_clientId(CID1);
    $batch->add($messageLink, $targetLink);

    //个推信息体
    $messageNoti = new IGtSingleMessage();
    $messageNoti->set_isOffline(true);//是否离线
    $messageNoti->set_offlineExpireTime(12 * 1000 * 3600);//离线时间
    $messageNoti->set_data($templateNoti);//设置推送消息类型
    //$messageNoti->set_PushNetWorkType(1);//设置是否根据WIFI推送消息,1为wifi推送,0为不限制推送

    $targetNoti = new IGtTarget();
    $targetNoti->set_appId(APPID);
    $targetNoti->set_clientId(CID2);
    $batch->add($messageNoti, $targetNoti);

    try {
        $rep = $batch->submit();
        var_dump($rep);
        echo("<br><br>");
    }catch(Exception $e){
        $rep=$batch->retry();
        var_dump($rep);
        echo ("<br><br>");
    }
}

function IGtLinkTemplateDemo(){
    $template =  new IGtLinkTemplate();
    $template ->set_appId(APPID);//应用appid
    $template ->set_appkey(APPKEY);//应用appkey
    $template ->set_title("请输入通知标题");//通知栏标题
    $template ->set_text("请输入通知内容");//通知栏内容
    $template ->set_logo("");//通知栏logo
    $template ->set_isRing(true);//是否响铃
    $template ->set_isVibrate(true);//是否震动
    $template ->set_isClearable(true);//通知栏是否可清除
    $template ->set_url("http://www.igetui.com/");//打开连接地址
    //$template->set_duration(BEGINTIME,ENDTIME); //设置ANDROID客户端在此时间区间内展示消息
    return $template;
}

function IGtNotificationTemplateDemo(){
    $template =  new IGtNotificationTemplate();
    $template->set_appId(APPID);//应用appid
    $template->set_appkey(APPKEY);//应用appkey
    $template->set_transmissionType(1);//透传消息类型
    $template->set_transmissionContent("测试离线");//透传内容
    $template->set_title("个推");//通知栏标题
    $template->set_text("个推最新版点击下载");//通知栏内容
    $template->set_logo("http://wwww.igetui.com/logo.png");//通知栏logo
    $template->set_isRing(true);//是否响铃
    $template->set_isVibrate(true);//是否震动
    $template->set_isClearable(true);//通知栏是否可清除
    //$template->set_duration(BEGINTIME,ENDTIME); //设置ANDROID客户端在此时间区间内展示消息
    return $template;
}
?>

7. 推送结果返回值

具体返回值请查询下表

正确返回 返回码 结果说明
successed_online 用户在线,消息在线下发
successed_offline 用户离线,消息存入离线系统
Ok 发送成功
details 返回用户状态的详细信息
contentId 任务ID(当result值为ok时,有此字段)
错误返回 返回码 结果说明
Error 请求信息填写有误
action_error 未找到对应的action动作
appkey_error Appkey填写错误
domain_error 填写的域名错误或者无法解析
sign_error Appkey与ClientId不匹配,鉴权失败
AppidNoMatchAppKey appid和鉴权的appkey不匹配
PushMsgToListOrAppTimesOverLimit 群推次数超过最大值
PushTotalNumOverLimit 推送个数总数超过最大值
AppIdNoUsers 该AppId下的用户总数为0
SendError 消息推送发送错误
SynSendError 报文发送错误
flow_exceeded 接口消息推送流量已超限
TargetListIsNullOrSizeIs0 推送target列表为空
PushTotalNumOverLimit 推送消息个数总数超限
TokenMD5NoUsers target列表没有有效的clientID
NullMsgCommon 未找到contentId对应的任务
TaskIdHasBeanCanceled 任务已经被取消
AppidError clientid绑定的appid与推送的appid不符
successed_ignore 无效用户,消息丢弃
TokenMD5Error clientID填写有误
SendError 消息发送错误
AppidNoAppSecret appid未找到对应的appSecret
OtherError 未知错误,无法判定错误类型
通知
2017.12.18 iOS SDK 2.1.0.0

新增 SDK 离线状态返回。 优化 SDK 解决已知问题。

......
2017.08.17 Android SDK 2.11.1.0

增加 "绑定、解绑别名" 结果回调 修复 "设置标签" 在某些情况下失败问题 修复若干其他 bug【感谢快看小说的反馈及大力支持~】

......
2017.08.10 iOS SDK 2.0.0.0

新增支持一键解绑该别名下对应的所有用户。 优化 SDK 解决已知问题,以 Framework 形式提供 SDK 库。 扩展 SDK(GtExtensionSdk)新增资源释放接口,防止超时处理导致的问题。

......
2017.08.03 Android SDK 2.10.3.5

调整代码符合google审核规则 针对海外用户进行联网优化 bug修复

......
2017.07.13 PYTHON SDK 4.0.1.4

修改获取用户状态接口的返回值无法识别的问题

......

文档中心搜索