android个推消息推送,asp.net调用接口

简介: using System;using System.Collections.Generic;using System.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using com.igetui.api.openservice;
using com.igetui.api.openservice.igetui.template;
using com.igetui.api.openservice.igetui;


/// <summary>
///个推消息推送类
///  暖枫无敌 2015-04-17
/// 服务端推送接口,支持三个接口推送
/// 1.PushMessageToSingle接口:支持对单个用户进行推送
/// 2.PushMessageToList接口:支持对多个用户进行推送,建议为50个用户
/// 3.PushMessageToApp接口:对单个应用下的所有用户进行推送,可根据省份,标签,机型过滤推送        
/// </summary>
public class gtPushMessage
{
    /// <summary>
    /// 构造函数中传入移动客户端的CLIENTID号
    /// </summary>
    /// <param name="clientId">获取的clientID </param>
    public gtPushMessage(string clientId)
    {


        Environment.SetEnvironmentVariable("needDetails", "true");
        CLIENTID = clientId;
    }


    #region  应用基本参数信息


    //应用的AppId
    public String APPID = "请更换你的Android应用AppId";
    //应用的AppKey              
    public String APPKEY = "请更换你的Android应用AppKey";
    //应用的MasterSecret              
    public String MASTERSECRET = "请更换你的Android应用MasterSecret";
    //获取的clientID     
    public String CLIENTID = "请更换你安装了Android应用的手机clientid";
    //OpenService接口地址
    public static String HOST = "http://sdk.open.api.igexin.com/apiex.htm";
    //填写IOS系统的DeviceToken
    public static String DeviceToken = "";


    #endregion


    #region 1、PushMessageToSingle接口:支持对单个用户进行推送(4种模式)


    /// <summary>
    /// 透传模板
    /// </summary>
    /// <param name="transContent">透传内容</param>
    /// <param name="beginTM">客户端展示开始时间</param>
    /// <param name="endTM">客户端展示结束时间</param>
    /// <returns></returns>
    public string PushMessageToSingleByTransmissionTemplate(string transContent, string beginTM, string endTM)
    {
        // 推送主类
        IGtPush push = new IGtPush("", APPKEY, MASTERSECRET);


        TransmissionTemplate template = TransmissionTemplateDemo(transContent, beginTM, endTM);


        // 单推消息模型
        SingleMessage message = new SingleMessage();
        message.IsOffline = false; // 用户当前不在线时,是否离线存储,可选
        message.OfflineExpireTime = 1000 * 3600 * 12; // 离线有效时间,单位为毫秒,可选
        message.Data = template;
        //message.PushNetWorkType = 1; //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境
        com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
        target.appId = APPID;
        target.clientId = CLIENTID;


        String pushResult = push.pushMessageToSingle(message, target);
        return pushResult;
    }


    /// <summary>
    /// 通知链接模板
    /// </summary>
    /// <param name="title">通知栏标题</param>
    /// <param name="text">通知栏内容</param>
    /// <param name="logo">通知栏显示本地图片</param>
    /// <param name="logoUrl">通知栏显示网络图标,如无法读取,则显示本地默认图标,可为空</param>
    /// <param name="url">打开的链接地址</param>
    /// <returns></returns>
    public string PushMessageToSingleByLinkTemplate(string title, string text, string logo, string logoUrl, string url)
    {
        // 推送主类
        IGtPush push = new IGtPush("", APPKEY, MASTERSECRET);


        LinkTemplate template = LinkTemplateDemo(title, text, logo, logoUrl, url);


        // 单推消息模型
        SingleMessage message = new SingleMessage();
        message.IsOffline = false; // 用户当前不在线时,是否离线存储,可选
        message.OfflineExpireTime = 1000 * 3600 * 12; // 离线有效时间,单位为毫秒,可选
        message.Data = template;
        //message.PushNetWorkType = 1; //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境
        com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
        target.appId = APPID;
        target.clientId = CLIENTID;


        String pushResult = push.pushMessageToSingle(message, target);
        return pushResult;
    }


    /// <summary>
    /// 通知透传模板
    /// </summary>
    /// <param name="title">通知栏标题</param>
    /// <param name="text">通知栏内容</param>
    /// <param name="logo">通知栏显示本地图片</param>
    /// <param name="logoUrl">通知栏显示网络图标</param>
    /// <param name="transContent">透传内容</param>
    /// <param name="beginTM">客户端展示开始时间</param>
    /// <param name="endTM">客户端展示结束时间</param>
    /// <returns></returns>
    public string PushMessageToSingleByNotificationTemplate(string title, string text, string logo, string logoUrl, string transContent, string beginTM, string endTM)
    {
        // 推送主类
        IGtPush push = new IGtPush("", APPKEY, MASTERSECRET);


        NotificationTemplate template = NotificationTemplateDemo(title, text, logo, logoUrl, transContent, beginTM, endTM);


        // 单推消息模型
        SingleMessage message = new SingleMessage();
        message.IsOffline = true; // 用户当前不在线时,是否离线存储,可选
        message.OfflineExpireTime = 1000 * 600;// 1000 * 3600 * 12; // 离线有效时间,单位为毫秒,可选
        message.Data = template;
        //message.PushNetWorkType = 1; //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境
        com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
        target.appId = APPID;
        target.clientId = CLIENTID;


        String pushResult = push.pushMessageToSingle(message, target);
        return pushResult;
    }


    /// <summary>
    /// 通知弹框下载模板
    /// </summary>
    /// <param name="notyTitle">通知栏标题</param>
    /// <param name="notyContent">通知栏内容</param>
    /// <param name="notyIcon">通知栏显示本地图片</param>
    /// <param name="logoUrl">通知栏显示网络图标</param>
    /// <param name="popTitle">弹框显示标题</param>
    /// <param name="popContent">弹框显示内容</param>
    /// <param name="popImage">弹框显示图片</param>
    /// <param name="popButton1">弹框左边按钮显示文本</param>
    /// <param name="popButton2">弹框右边按钮显示文本</param>
    /// <param name="loadTitle">通知栏显示下载标题</param>
    /// <param name="loadIcon">通知栏显示下载图标,可为空</param>
    /// <param name="loadUrl">下载地址,不可为空</param>
    /// <returns></returns>
    public string PushMessageToSingleByNotyPopLoadTemplate(string notyTitle, string notyContent, string notyIcon, string logoUrl, string popTitle, string popContent, string popImage, string popButton1, string popButton2, string loadTitle, string loadIcon, string loadUrl)
    {
        // 推送主类
        IGtPush push = new IGtPush("", APPKEY, MASTERSECRET);


        NotyPopLoadTemplate template = NotyPopLoadTemplateDemo(notyTitle, notyContent, notyIcon, logoUrl, popTitle, popContent, popImage, popButton1, popButton2, loadTitle, loadIcon, loadUrl);


        // 单推消息模型
        SingleMessage message = new SingleMessage();
        message.IsOffline = false; // 用户当前不在线时,是否离线存储,可选
        message.OfflineExpireTime = 1000 * 3600 * 12; // 离线有效时间,单位为毫秒,可选
        message.Data = template;
        //message.PushNetWorkType = 1; //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境
        com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
        target.appId = APPID;
        target.clientId = CLIENTID;


        String pushResult = push.pushMessageToSingle(message, target);
        return pushResult;
    }


    #endregion


    #region 2、PushMessageToList接口:支持对多个用户进行推送,建议为50个用户


    /// <summary>
    /// 透传模板
    /// </summary>
    /// <param name="transContent">透传内容</param>
    /// <param name="beginTM">客户端展示开始时间</param>
    /// <param name="endTM">客户端展示结束时间</param>
    /// <returns></returns>
    public string PushMessageToListByTransmissionTemplate(string transContent, string beginTM, string endTM)
    {
        IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
        ListMessage message = new ListMessage();
        TransmissionTemplate template = TransmissionTemplateDemo(transContent, beginTM, endTM);


        message.IsOffline = true; // 用户当前不在线时,是否离线存储,可选
        message.OfflineExpireTime = 1000 * 3600 * 12;// 离线有效时间,单位为毫秒,可选
        message.Data = template;
        //message.PushNetWorkType = 0;//判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境


        //设置接收者
        List<com.igetui.api.openservice.igetui.Target> targetList = new List<com.igetui.api.openservice.igetui.Target>();
        com.igetui.api.openservice.igetui.Target target1 = new com.igetui.api.openservice.igetui.Target();
        target1.appId = APPID;
        target1.clientId = CLIENTID;


        // 如需要,可以设置多个接收者
        com.igetui.api.openservice.igetui.Target target2 = new com.igetui.api.openservice.igetui.Target();
        target2.appId = APPID;


        targetList.Add(target1);
        targetList.Add(target2);


        String contentId = push.getContentId(message, "任务组名");
        String pushResult = push.pushMessageToList(contentId, targetList);
        return pushResult;
    }


    /// <summary>
    /// 通知链接模板
    /// </summary>
    /// <param name="title">通知栏标题</param>
    /// <param name="text">通知栏内容</param>
    /// <param name="logo">通知栏显示本地图片</param>
    /// <param name="logoUrl">通知栏显示网络图标,如无法读取,则显示本地默认图标,可为空</param>
    /// <param name="url">打开的链接地址</param>
    /// <returns></returns>
    public string PushMessageToListByLinkTemplate(string title, string text, string logo, string logoUrl, string url)
    {
        IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
        ListMessage message = new ListMessage();
        LinkTemplate template = LinkTemplateDemo(title, text, logo, logoUrl, url);


        message.IsOffline = true; // 用户当前不在线时,是否离线存储,可选
        message.OfflineExpireTime = 1000 * 3600 * 12;// 离线有效时间,单位为毫秒,可选
        message.Data = template;
        //message.PushNetWorkType = 0;//判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境


        //设置接收者
        List<com.igetui.api.openservice.igetui.Target> targetList = new List<com.igetui.api.openservice.igetui.Target>();
        com.igetui.api.openservice.igetui.Target target1 = new com.igetui.api.openservice.igetui.Target();
        target1.appId = APPID;
        target1.clientId = CLIENTID;


        // 如需要,可以设置多个接收者
        com.igetui.api.openservice.igetui.Target target2 = new com.igetui.api.openservice.igetui.Target();
        target2.appId = APPID;


        targetList.Add(target1);
        targetList.Add(target2);


        String contentId = push.getContentId(message, "任务组名");
        String pushResult = push.pushMessageToList(contentId, targetList);
        return pushResult;


    }


    /// <summary>
    /// 通知透传模板
    /// </summary>
    /// <param name="title">通知栏标题</param>
    /// <param name="text">通知栏内容</param>
    /// <param name="logo">通知栏显示本地图片</param>
    /// <param name="logoUrl">通知栏显示网络图标</param>
    /// <param name="transContent">透传内容</param>
    /// <param name="beginTM">客户端展示开始时间</param>
    /// <param name="endTM">客户端展示结束时间</param>
    /// <returns></returns>
    public string PushMessageToListByNotificationTemplate(string title, string text, string logo, string logoUrl, string transContent, string beginTM, string endTM)
    {
        IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
        ListMessage message = new ListMessage();
        NotificationTemplate template = NotificationTemplateDemo(title, text, logo, logoUrl, transContent, beginTM, endTM);


        message.IsOffline = true; // 用户当前不在线时,是否离线存储,可选
        message.OfflineExpireTime = 1000 * 3600 * 12;// 离线有效时间,单位为毫秒,可选
        message.Data = template;
        //message.PushNetWorkType = 0;//判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境


        //设置接收者
        List<com.igetui.api.openservice.igetui.Target> targetList = new List<com.igetui.api.openservice.igetui.Target>();
        com.igetui.api.openservice.igetui.Target target1 = new com.igetui.api.openservice.igetui.Target();
        target1.appId = APPID;
        target1.clientId = CLIENTID;


        // 如需要,可以设置多个接收者
        com.igetui.api.openservice.igetui.Target target2 = new com.igetui.api.openservice.igetui.Target();
        target2.appId = APPID;


        targetList.Add(target1);
        targetList.Add(target2);


        String contentId = push.getContentId(message, "任务组名");
        String pushResult = push.pushMessageToList(contentId, targetList);
        return pushResult;
    }




    /// <summary>
    /// 通知弹框下载模板
    /// </summary>
    /// <param name="notyTitle">通知栏标题</param>
    /// <param name="notyContent">通知栏内容</param>
    /// <param name="notyIcon">通知栏显示本地图片</param>
    /// <param name="logoUrl">通知栏显示网络图标</param>
    /// <param name="popTitle">弹框显示标题</param>
    /// <param name="popContent">弹框显示内容</param>
    /// <param name="popImage">弹框显示图片</param>
    /// <param name="popButton1">弹框左边按钮显示文本</param>
    /// <param name="popButton2">弹框右边按钮显示文本</param>
    /// <param name="loadTitle">通知栏显示下载标题</param>
    /// <param name="loadIcon">通知栏显示下载图标,可为空</param>
    /// <param name="loadUrl">下载地址,不可为空</param>
    /// <returns></returns>
    public string PushMessageToListByNotyPopLoadTemplate(string notyTitle, string notyContent, string notyIcon, string logoUrl, string popTitle, string popContent, string popImage, string popButton1, string popButton2, string loadTitle, string loadIcon, string loadUrl)
    {
        IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
        ListMessage message = new ListMessage();
        NotyPopLoadTemplate template = NotyPopLoadTemplateDemo(notyTitle, notyContent, notyIcon, logoUrl, popTitle, popContent, popImage, popButton1, popButton2, loadTitle, loadIcon, loadUrl);


        message.IsOffline = true; // 用户当前不在线时,是否离线存储,可选
        message.OfflineExpireTime = 1000 * 3600 * 12;// 离线有效时间,单位为毫秒,可选
        message.Data = template;
        //message.PushNetWorkType = 0;//判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境


        //设置接收者
        List<com.igetui.api.openservice.igetui.Target> targetList = new List<com.igetui.api.openservice.igetui.Target>();
        com.igetui.api.openservice.igetui.Target target1 = new com.igetui.api.openservice.igetui.Target();
        target1.appId = APPID;
        target1.clientId = CLIENTID;


        // 如需要,可以设置多个接收者
        com.igetui.api.openservice.igetui.Target target2 = new com.igetui.api.openservice.igetui.Target();
        target2.appId = APPID;


        targetList.Add(target1);
        targetList.Add(target2);


        String contentId = push.getContentId(message, "任务组名");
        String pushResult = push.pushMessageToList(contentId, targetList);
        return pushResult;
    }


    #endregion


    #region 3、PushMessageToApp接口:对单个应用下的所有用户进行推送,可根据省份,标签,机型过滤推送


    /// <summary>
    /// 透传模板
    /// </summary>
    /// <param name="transContent">透传内容</param>
    /// <param name="beginTM">客户端展示开始时间</param>
    /// <param name="endTM">客户端展示结束时间</param>
    /// <returns></returns>
    public string PushMessageToAppByTransmissionTemplate(string transContent, string beginTM, string endTM)
    {
        IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
        AppMessage message = new AppMessage();
        TransmissionTemplate template = TransmissionTemplateDemo(transContent, beginTM, endTM);


        message.IsOffline = false;// 用户当前不在线时,是否离线存储,可选
        message.OfflineExpireTime = 1000 * 3600 * 12;// 离线有效时间,单位为毫秒,可选
        message.Data = template;
        //message.PushNetWorkType = 0; //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境
        message.Speed = 1;


        List<String> appIdList = new List<string>();
        appIdList.Add(APPID);


        List<String> phoneTypeList = new List<string>();//通知接收者的手机操作系统类型
        //phoneTypeList.Add("ANDROID");
        //phoneTypeList.Add("IOS");


        List<String> provinceList = new List<string>();//通知接收者所在省份
        //provinceList.Add("浙江");
        //provinceList.Add("上海");
        //provinceList.Add("北京");


        List<String> tagList = new List<string>();
        //tagList.Add("标签5");


        message.AppIdList = appIdList;
        message.PhoneTypeList = phoneTypeList;
        message.ProvinceList = provinceList;
        message.TagList = tagList;


        String pushResult = push.pushMessageToApp(message, "toAPP任务别名");
        return pushResult;
    }




    /// <summary>
    /// 通知链接模板
    /// </summary>
    /// <param name="title">通知栏标题</param>
    /// <param name="text">通知栏内容</param>
    /// <param name="logo">通知栏显示本地图片</param>
    /// <param name="logoUrl">通知栏显示网络图标,如无法读取,则显示本地默认图标,可为空</param>
    /// <param name="url">打开的链接地址</param>
    /// <returns></returns>
    public string PushMessageToAppByLinkTemplate(string title, string text, string logo, string logoUrl, string url)
    {
        IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
        AppMessage message = new AppMessage();
        LinkTemplate template = LinkTemplateDemo(title, text, logo, logoUrl, url);


        message.IsOffline = false; // 用户当前不在线时,是否离线存储,可选
        message.OfflineExpireTime = 1000 * 3600 * 12; // 离线有效时间,单位为毫秒,可选
        message.Data = template;
        //message.PushNetWorkType = 0;//判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境
        message.Speed = 1;


        List<String> appIdList = new List<string>();
        appIdList.Add(APPID);


        List<String> phoneTypeList = new List<string>();//通知接收者的手机操作系统类型
        //phoneTypeList.Add("ANDROID");
        //phoneTypeList.Add("IOS");


        List<String> provinceList = new List<string>();//通知接收者所在省份
        //provinceList.Add("浙江");
        //provinceList.Add("上海");
        //provinceList.Add("北京");


        List<String> tagList = new List<string>();
        //tagList.Add("标签5");


        message.AppIdList = appIdList;
        message.PhoneTypeList = phoneTypeList;
        message.ProvinceList = provinceList;
        message.TagList = tagList;


        String pushResult = push.pushMessageToApp(message, "toAPP任务别名");
        return pushResult;
    }


    /// <summary>
    /// 通知透传模板
    /// </summary>
    /// <param name="title">通知栏标题</param>
    /// <param name="text">通知栏内容</param>
    /// <param name="logo">通知栏显示本地图片</param>
    /// <param name="logoUrl">通知栏显示网络图标</param>
    /// <param name="transContent">透传内容</param>
    /// <param name="beginTM">客户端展示开始时间</param>
    /// <param name="endTM">客户端展示结束时间</param>
    /// <returns></returns>
    public string PushMessageToAppByNotificationTemplate(string title, string text, string logo, string logoUrl, string transContent, string beginTM, string endTM)
    {
        IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
        AppMessage message = new AppMessage();
        NotificationTemplate template = NotificationTemplateDemo(title, text, logo, logoUrl, transContent, beginTM, endTM);


        message.IsOffline = false;// 用户当前不在线时,是否离线存储,可选
        message.OfflineExpireTime = 1000 * 3600 * 12;// 离线有效时间,单位为毫秒,可选
        message.Data = template;
        //message.PushNetWorkType = 0;//判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境
        message.Speed = 1;


        List<String> appIdList = new List<string>();
        appIdList.Add(APPID);


        List<String> phoneTypeList = new List<string>();//通知接收者的手机操作系统类型
        //phoneTypeList.Add("ANDROID");
        //phoneTypeList.Add("IOS");


        List<String> provinceList = new List<string>();//通知接收者所在省份
        //provinceList.Add("浙江");
        //provinceList.Add("上海");
        //provinceList.Add("北京");


        List<String> tagList = new List<string>();
        //tagList.Add("标签5");


        message.AppIdList = appIdList;
        message.PhoneTypeList = phoneTypeList;
        message.ProvinceList = provinceList;
        message.TagList = tagList;


        String pushResult = push.pushMessageToApp(message, "toAPP任务别名");
        return pushResult;
    }


     /// <summary>
    /// 通知弹框下载模板
    /// </summary>
    /// <param name="notyTitle">通知栏标题</param>
    /// <param name="notyContent">通知栏内容</param>
    /// <param name="notyIcon">通知栏显示本地图片</param>
    /// <param name="logoUrl">通知栏显示网络图标</param>
    /// <param name="popTitle">弹框显示标题</param>
    /// <param name="popContent">弹框显示内容</param>
    /// <param name="popImage">弹框显示图片</param>
    /// <param name="popButton1">弹框左边按钮显示文本</param>
    /// <param name="popButton2">弹框右边按钮显示文本</param>
    /// <param name="loadTitle">通知栏显示下载标题</param>
    /// <param name="loadIcon">通知栏显示下载图标,可为空</param>
    /// <param name="loadUrl">下载地址,不可为空</param>
    /// <returns></returns>
    public string PushMessageToAppByNotyPopLoadTemplate(string notyTitle, string notyContent, string notyIcon, string logoUrl, string popTitle, string popContent, string popImage, string popButton1, string popButton2, string loadTitle, string loadIcon, string loadUrl)
    {
        IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
        AppMessage message = new AppMessage();
        NotyPopLoadTemplate template = NotyPopLoadTemplateDemo(notyTitle, notyContent, notyIcon, logoUrl, popTitle, popContent, popImage, popButton1, popButton2, loadTitle, loadIcon, loadUrl);


        message.IsOffline = false;// 用户当前不在线时,是否离线存储,可选
        message.OfflineExpireTime = 1000 * 3600 * 12;// 离线有效时间,单位为毫秒,可选
        message.Data = template;
        //message.PushNetWorkType = 0; //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境
        message.Speed = 1;


        List<String> appIdList = new List<string>();
        appIdList.Add(APPID);


        List<String> phoneTypeList = new List<string>(); //通知接收者的手机操作系统类型
        //phoneTypeList.Add("ANDROID");
        //phoneTypeList.Add("IOS");


        List<String> provinceList = new List<string>(); //通知接收者所在省份
        //provinceList.Add("浙江");
        //provinceList.Add("上海");
        //provinceList.Add("北京");


        List<String> tagList = new List<string>();
        //tagList.Add("标签5");


        message.AppIdList = appIdList;
        message.PhoneTypeList = phoneTypeList;
        message.ProvinceList = provinceList;
        message.TagList = tagList;


        String pushResult = push.pushMessageToApp(message, "toAPP任务别名");
        return pushResult;
    }


    #endregion


    #region 2、四种消息模板


    /*
     * 
     * 所有推送接口均支持四个消息模板,依次为透传模板,通知透传模板,通知链接模板,通知弹框下载模板
     * 注:IOS离线推送需通过APN进行转发,需填写pushInfo字段,目前仅不支持通知弹框下载功能
     *
     */


    /// <summary>
    /// 通知弹框下载模板动作内容,常用于下载apk更新软件等
    /// </summary>
    /// <param name="notyTitle">通知栏标题</param>
    /// <param name="notyContent">通知栏内容</param>
    /// <param name="notyIcon">通知栏显示本地图片</param>
    /// <param name="logoUrl">通知栏显示网络图标</param>
    /// <param name="popTitle">弹框显示标题</param>
    /// <param name="popContent">弹框显示内容</param>
    /// <param name="popImage">弹框显示图片</param>
    /// <param name="popButton1">弹框左边按钮显示文本</param>
    /// <param name="popButton2">弹框右边按钮显示文本</param>
    /// <param name="loadTitle">通知栏显示下载标题</param>
    /// <param name="loadIcon">通知栏显示下载图标,可为空</param>
    /// <param name="loadUrl">下载地址,不可为空</param>
    /// <returns></returns>
    public NotyPopLoadTemplate NotyPopLoadTemplateDemo(string notyTitle, string notyContent, string notyIcon, string logoUrl, string popTitle, string popContent, string popImage, string popButton1, string popButton2, string loadTitle, string loadIcon, string loadUrl)
    {
        NotyPopLoadTemplate template = new NotyPopLoadTemplate();
        template.AppId = APPID;
        template.AppKey = APPKEY;
        template.NotyTitle = notyTitle; //通知栏标题
        template.NotyContent = notyContent; //通知栏内容
        template.NotyIcon = notyIcon; //通知栏显示本地图片,如icon.png
        template.LogoURL = logoUrl; //通知栏显示网络图标,如http://www-igexin.qiniudn.com/wp-content/uploads/2013/08/logo_getui1.png


        template.PopTitle = popTitle; //弹框显示标题
        template.PopContent = popContent; //弹框显示内容
        template.PopImage = popImage;  //弹框显示图片
        template.PopButton1 = popButton1; //弹框左边按钮显示文本
        template.PopButton2 = popButton2; //弹框右边按钮显示文本


        template.LoadTitle = loadTitle;//通知栏显示下载标题
        template.LoadIcon = loadIcon;//通知栏显示下载图标,可为空,如file://push.png
        template.LoadUrl = loadUrl;//下载地址,不可为空,http://www.appchina.com/market/d/425201/cop.baidu_0/com.gexin.im.apk


        template.IsActived = true;//应用安装完成后,是否自动启动
        template.IsAutoInstall = true; //下载应用完成后,是否弹出安装界面,true:弹出安装界面,false:手动点击弹出安装界面


        template.IsBelled = true;//接收到消息是否响铃,true:响铃 false:不响铃
        template.IsVibrationed = true;//接收到消息是否震动,true:震动 false:不震动
        template.IsCleared = true;//接收到消息是否可清除,true:可清除 false:不可清除
        return template;
    }


    /// <summary>
    /// 通知链接动作内容
    /// </summary>
    /// <param name="title">通知栏标题</param>
    /// <param name="text">通知栏内容</param>
    /// <param name="logo">通知栏显示本地图片</param>
    /// <param name="logoUrl">通知栏显示网络图标,如无法读取,则显示本地默认图标,可为空</param>
    /// <param name="url">打开的链接地址</param>
    /// <returns></returns>
    public LinkTemplate LinkTemplateDemo(string title, string text, string logo, string logoUrl, string url)
    {
        LinkTemplate template = new LinkTemplate();
        template.AppId = APPID;
        template.AppKey = APPKEY;
        template.Title = title;//通知栏标题
        template.Text = text;//通知栏内容
        template.Logo = logo;//通知栏显示本地图片
        template.LogoURL = logoUrl;  //通知栏显示网络图标,如无法读取,则显示本地默认图标,可为空
        template.Url = url; //打开的链接地址,如http://www.baidu.com


        //iOS推送需要的pushInfo字段
        //template.setPushInfo(actionLocKey, badge, message, sound, payload, locKey, locArgs, launchImage);


        template.IsRing = true;//接收到消息是否响铃,true:响铃 false:不响铃
        template.IsVibrate = true;//接收到消息是否震动,true:震动 false:不震动
        template.IsClearable = true;//接收到消息是否可清除,true:可清除 false:不可清除


        return template;
    }




    /// <summary>
    /// 通知透传模板动作内容
    /// </summary>
    /// <param name="title">通知栏标题</param>
    /// <param name="text">通知栏内容</param>
    /// <param name="logo">通知栏显示本地图片</param>
    /// <param name="logoUrl">通知栏显示网络图标</param>
    /// <param name="transContent">透传内容</param>
    /// <param name="beginTM">客户端展示开始时间</param>
    /// <param name="endTM">客户端展示结束时间</param>
    /// <returns></returns>
    public NotificationTemplate NotificationTemplateDemo(string title, string text, string logo, string logoUrl, string transContent, string beginTM, string endTM)
    {
        NotificationTemplate template = new NotificationTemplate();
        template.AppId = APPID;
        template.AppKey = APPKEY;
        template.Title = title;//通知栏标题
        template.Text = text;//通知栏内容
        template.Logo = logo;//通知栏显示本地图片
        template.LogoURL = logoUrl;//通知栏显示网络图标,如https://www.baidu.com/img/bd_logo1.png


        template.TransmissionType = "1";//应用启动类型,1:强制应用启动  2:等待应用启动
        template.TransmissionContent = transContent;//透传内容
        //iOS推送需要的pushInfo字段
        //template.setPushInfo(actionLocKey, badge, message, sound, payload, locKey, locArgs, launchImage);


        //设置客户端展示时间
        String begin = beginTM;
        String end = endTM;
        template.setDuration(begin, end);


        template.IsRing = true; //接收到消息是否响铃,true:响铃 false:不响铃
        template.IsVibrate = true; //接收到消息是否震动,true:震动 false:不震动
        template.IsClearable = true; //接收到消息是否可清除,true:可清除 false:不可清除


        return template;
    }


    /// <summary>
    /// 透传模板动作内容
    /// </summary>
    /// <param name="transContent">透传内容</param>
    /// <param name="beginTM">客户端展示开始时间</param>
    /// <param name="endTM">客户端展示结束时间</param>
    /// <returns></returns>
    public TransmissionTemplate TransmissionTemplateDemo(string transContent, string beginTM, string endTM)
    {
        TransmissionTemplate template = new TransmissionTemplate();
        template.AppId = APPID;
        template.AppKey = APPKEY;
        template.TransmissionType = "1"; //应用启动类型,1:强制应用启动 2:等待应用启动
        template.TransmissionContent = transContent;  //透传内容
        //iOS推送需要的pushInfo字段
        //template.setPushInfo(actionLocKey, badge, message, sound, payload, locKey, locArgs, launchImage);
        template.setPushInfo("1", 4, "2", "", "", "", "", "");
        //设置客户端展示时间
        String begin = beginTM;
        String end = endTM;
        template.setDuration(begin, end);


        return template;
    }


    #endregion


    #region 3、获取用户当前状态


    /// <summary>
    /// 获取用户当前状态
    /// </summary>
    /// <returns></returns>
    public string getUserStatus()
    {
        IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
        String ret = push.getClientIdStatus(APPID, CLIENTID);
        return ret;
    }


    #endregion


}


Web系统中点击下发任务,调用接口,示例如下:

public partial class PushMessage_Test : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            string clientId = "f67adb8d5b04a225fa7192b8741eb47b";
            gtPushMessage message = new gtPushMessage(clientId);
            //方法调用过程中一定要注意,截止时间一定要大于当前操作时间,建议在当前操作时间的基础上加5分钟时间
            string msg = message.PushMessageToSingleByNotificationTemplate("XXX - 单用户", "您有新的任务,点击查看!"+System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), "", "", "", "2015-04-20 15:10", "2015-04-20 16:30");
            string msg2 = message.PushMessageToAppByNotificationTemplate("XXX  - APP应用", "您有新的任务,点击查看!", "", "", "", "2015-04-20 10:10", "2015-04-20 14:30");
            string msg3 = message.PushMessageToListByNotificationTemplate("XXX  - 多用户", "您有新的任务,点击查看!", "", "", "", "2015-04-20 10:10", "2015-04-20 14:30");
             Response.Write(msg+"</br>");
            Response.Write(msg2 + "</br>");
            Response.Write(msg3 + "</br>");
            //解析输出结果
            //{"taskId":"OSS-0420_ZiFBb3Sx7A7Pz7YWMwJdD9","result":"ok","status":"successed_online"} 在线状态
            //{"taskId":"OSS-0420_2qtgpolflJAuYGSiGTfQ04","result":"ok","status":"successed_offline"} 离线状态
        }
    }
}



相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
3月前
|
Linux Android开发
Android 正常运行所需的一系列 Linux 内核接口
Android 正常运行所需的一系列 Linux 内核接口
53 0
|
4月前
|
XML JSON Java
Android App网络通信中通过okhttp调用HTTP接口讲解及实战(包括GET、表单格式POST、JSON格式POST 附源码)
Android App网络通信中通过okhttp调用HTTP接口讲解及实战(包括GET、表单格式POST、JSON格式POST 附源码)
169 0
|
8月前
|
测试技术
个推消息推送专项运营提升方案,基于AIGC实现推送文案智能生成
个推消息推送专项运营提升方案自今年3月份发布以来,已应用于游戏社交、影音资讯、电商购物等多个行业。现个推消息推送专项运营提升方案又实现了推送策略的智能化和推送流程的自动化,助力APP进一步提升消息推送的效率和效果。
181 0
个推消息推送专项运营提升方案,基于AIGC实现推送文案智能生成
|
4月前
|
XML Java API
Android App开发之创建JNI接口获取CPU指令集讲解及实战(附源码 简单易懂)
Android App开发之创建JNI接口获取CPU指令集讲解及实战(附源码 简单易懂)
42 0
|
4月前
|
XML Java 定位技术
Android Studio App开发之网络通信中使用GET方式调用HTTP接口的讲解及实战(附源码 超详细必看)
Android Studio App开发之网络通信中使用GET方式调用HTTP接口的讲解及实战(附源码 超详细必看)
58 0
|
5月前
|
IDE 网络安全 开发工具
安卓模拟器接口抓包教程
用uni-app开发安卓应用时,查看接口数据不能像在浏览器中可以直接通过network查看,只能借助抓包工具来抓包,还有一些线上应用我们也只能通过抓包来排查具体的问题
331 0
|
5月前
|
Android开发
androidのretrofit2调用接口
androidのretrofit2调用接口
32 0
|
8月前
|
Java Android开发
Android 中通过Intent传递类对象,通过实现Serializable和Parcelable接口两种方式传递对象
Android 中通过Intent传递类对象,通过实现Serializable和Parcelable接口两种方式传递对象
77 1
|
10月前
|
Android开发 C++
Android系统的Ashmem匿名共享内存子系统分析(3)- Ashmem子系统的 C/C++访问接口
Android系统的Ashmem匿名共享内存子系统分析(3)- Ashmem子系统的 C/C++访问接口
126 0
|
11月前
|
XML 数据格式
Android_点击事件(实现接口OnClickListener)
关于每个Fragment里面都会有点击事件,如果一个Fragment里面很多控件有点击事件,那么就让这个Fragment类实现点击事件接口,例如
96 0