jack2018
jack2018
  • 发布:2019-07-30 18:02
  • 更新:2021-04-01 10:13
  • 阅读:5325

unipush服务器后台进行消息推送服务(c#)

分类:uni-app

unipush消息推送DCloud开发者中心中通过clientid进行推送测试成功;华为手机客户端能接收到推送消息服务;
在App.vue中获取clientid
export default {
onLaunch: function () {
//#ifdef APP-PLUS
plus.push.getClientInfo().clientid
//#endif
},

服务器后台使用.net 对单个用户clientid进行消息送,消息推送结果失败,另外是否一定在开发者中心设置厂商推送设置,能否通过华为手机没有APPKEY 怎么解决;
/// <summary>
/// 消息推送
/// </summary>
public class Program
{
//采用"C# SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置,用户可自行替换
private static String APPID = "UNIxxx";
private static String APPKEY = "";
private static String MASTERSECRET = "";
//您获取的clientID
private static String CLIENTID1 = "094a875xxxxxxxx";
private static String CLIENTID2 = "";
//别名推送方式
//private static String ALIAS = "";
//HOST:OpenService接口地址
private static String HOST = "http://sdk.open.api.igexin.com/apiex.htm";
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
//toList接口每个用户状态返回是否开启,可选
//Console.OutputEncoding = Encoding.GetEncoding(936);
Environment.SetEnvironmentVariable("needDetails", "true");
//1.对单个用户推送消息接口
PushMessageToSingle();

        //2.对指定列表用户推送消息接口  
        //PushMessageToList();  

        //3.对指定应用群推送消息接口  
        //pushMessageToApp();  

        //5.批量单推送功能接口  
        //singleBatchPushMessage();  
    }  
    #region 对单个用户推送消息  
    /// <summary>  
    /// 对单个用户推送消息  
    /// </summary>  
    private static void PushMessageToSingle()  
    {  

        IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);  

        //消息模版:TransmissionTemplate:透传模板  

        TransmissionTemplate template = TransmissionTemplateDemo();  

        // 单推消息模型  
        SingleMessage message = new SingleMessage();  
        message.IsOffline = true;                         // 用户当前不在线时,是否离线存储,可选  
        message.OfflineExpireTime = 1000 * 3600 * 12;            // 离线有效时间,单位为毫秒,可选  
        message.Data = template;  
        //判断是否客户端是否wifi环境下推送,2为4G/3G/2G,1为在WIFI环境下,0为不限制环境  
        //message.PushNetWorkType = 1;    

        com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();  
        target.appId = APPID;  
        target.clientId = CLIENTID1;  
        //target.alias = ALIAS;  
        try  
        {  
            String pushResult = push.pushMessageToSingle(message, target);  

            System.Console.WriteLine("-----------------------------------------------");  
            System.Console.WriteLine("-----------------------------------------------");  
            System.Console.WriteLine("----------------服务端返回结果:" + pushResult);  
        }  
        catch (RequestException e)  
        {  
            String requestId = e.RequestId;  
            //发送失败后的重发  
            String pushResult = push.pushMessageToSingle(message, target, requestId);  
            System.Console.WriteLine("-----------------------------------------------");  
            System.Console.WriteLine("-----------------------------------------------");  
            System.Console.WriteLine("----------------服务端返回结果:" + pushResult);  
        }  
    }  
    //透传模板动作内容  
    public static TransmissionTemplate TransmissionTemplateDemo()  
    {  
        TransmissionTemplate template = new TransmissionTemplate();  
        template.AppId = APPID;  
        template.AppKey = APPKEY;  
        //应用启动类型,1:强制应用启动 2:等待应用启动  
        template.TransmissionType = "1";  
        //透传内容  
        template.TransmissionContent = "透传内容";  
        //设置通知定时展示时间,结束时间与开始时间相差需大于6分钟,消息推送后,客户端将在指定时间差内展示消息(误差6分钟)  
        //String begin = "2015-03-06 14:36:10";  
        //String end = "2015-03-06 14:46:20";  
        //template.setDuration(begin, end);  
        Notify noti = new Notify();  
        noti.Title = "消息推送";  
        noti.Content = "家庭医生消息推送服务测试";  
        // noti.Type = NotifyInfo.Types.Type._url;  
        //noti.Url = "www.baidu.com";  
        noti.Type = NotifyInfo.Types.Type._intent;  
        noti.Intent = "intent:#Intent;launchFlags=0x14000000;package=com.pp.yl;component=你的包名/com.getui.demo.MainActivity; i.parm1 = 12; end";  
        template.set3rdNotifyInfo(noti);  
        return template;  
    }  
    #endregion  
}  
2019-07-30 18:02 负责人:无 分享
已邀请:
jack2018

jack2018 (作者)

有谁知道unipush服务器端通过c#消息推送成功,请帮忙技术支持下?

萧雨

萧雨

我刚踩完的坑 给你分享一下

        noti.Intent = "intent:#Intent;launchFlags=0x14000000;package=com.my.love;component=com.my.love;S.UP-OL-SU=true;S.title=测试标题;S.content=测试内容;S.payload=test;end";  
        **//加上以下的这些代码**  
        APNPayload apnpayload = new APNPayload();  
        SimpleAlertMsg alertMsg = new SimpleAlertMsg("您有新的好友申请");  
        apnpayload.AlertMsg = alertMsg;  
        apnpayload.Badge = 1;  
        apnpayload.ContentAvailable = 1;  
        apnpayload.Category = "";  
        apnpayload.Sound = "";  
        apnpayload.addCustomMsg("", "");  
        template.setAPNInfo(apnpayload);  
        template.set3rdNotifyInfo(noti);  
        return template;
  • jack2018 (作者)

    您好!方便加下你的QQ吗?服务端unipush消息推送失败,报如下异常

    2019-08-14 16:15

  • Hb传道者

    这个是 ios支持的啊, 第三方厂商,例如华为的写了也不好使; 控制台也配置好了。郁闷啊

    Notify noti = new Notify();

    noti.Title = title;

    noti.Content = context;

    string v = "intent:#Intent;action=android.intent.action.oppopush;";

    noti.Intent = "intent:#Intent;launchFlags=0x14000000;package=io.dcloud.Hb;component=io.dcloud.Hb4/io.dcloud.PandoraEntry;i.parm1=12;end";

    noti.Type = NotifyInfo.Types.Type._intent;

    template.set3rdNotifyInfo(noti);

    2019-08-22 17:34

jack2018

jack2018 (作者)

厂商推送需要设置不?

jack2018

jack2018 (作者)

@ 萧雨 方便加下你的QQ吗?服务端unipush消息推送失败,报如下异常

  • 萧雨

    安卓必须要求设备在线 你可以保存一下消息数据库设置一个标识 等设备上线了 再创建本地消息

    2019-08-23 09:21

深圳市思品

深圳市思品

用透传不行吗?在unipush后台做测试的时候,设备离线的话,透传消息是可以收到的,不过安卓的确实要比苹果的收到晚

3***@qq.com

3***@qq.com

请问,你们使用的是个推v2版本的吗?v2版本没有demo,完全没有头绪应该怎么封装啊?

该问题目前已经被锁定, 无法添加新回复