1 获取AccessKeyId和AccessKeySecret
>>前往阿里云官网控制台获取
2 获取appKey
>>前往移动推动控制台获取 app列表->应用证书
3 引入SDK依赖
- [backcolor=transparent]using[backcolor=transparent] [backcolor=transparent]Aliyun[backcolor=transparent].[backcolor=transparent]Acs[backcolor=transparent].[backcolor=transparent]Core[backcolor=transparent];
- [backcolor=transparent]using[backcolor=transparent] [backcolor=transparent]Aliyun[backcolor=transparent].[backcolor=transparent]Acs[backcolor=transparent].[backcolor=transparent]Core[backcolor=transparent].[backcolor=transparent]Exceptions[backcolor=transparent];
- [backcolor=transparent]using[backcolor=transparent] [backcolor=transparent]Aliyun[backcolor=transparent].[backcolor=transparent]Acs[backcolor=transparent].[backcolor=transparent]Core[backcolor=transparent].[backcolor=transparent]Profile[backcolor=transparent];
- [backcolor=transparent]using[backcolor=transparent] [backcolor=transparent]Aliyun[backcolor=transparent].[backcolor=transparent]Acs[backcolor=transparent].[backcolor=transparent]Push[backcolor=transparent].[backcolor=transparent]Model[backcolor=transparent].[backcolor=transparent]V20150827[backcolor=transparent];
- [backcolor=transparent]using[backcolor=transparent] [backcolor=transparent]System[backcolor=transparent];
4 示例代码(替换成您的AccessKeyId、AccessKeySecret、appKey)
- [backcolor=transparent] [backcolor=transparent]IClientProfile[backcolor=transparent] clientProfile [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]DefaultProfile[backcolor=transparent].[backcolor=transparent]GetProfile[backcolor=transparent]([backcolor=transparent]"cn-hangzhou"[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]"<your access key id>"[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]"<your access key secret>"[backcolor=transparent]);
- [backcolor=transparent] [backcolor=transparent]DefaultAcsClient[backcolor=transparent] client [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]DefaultAcsClient[backcolor=transparent]([backcolor=transparent]clientProfile[backcolor=transparent]);
- [backcolor=transparent] [backcolor=transparent]PushRequest[backcolor=transparent] request [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]PushRequest[backcolor=transparent]();
- [backcolor=transparent] [backcolor=transparent]// 推送目标
- [backcolor=transparent] request[backcolor=transparent].[backcolor=transparent]AppKey[backcolor=transparent] [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]<[backcolor=transparent]your appKey[backcolor=transparent]>;
- [backcolor=transparent] [backcolor=transparent]//推送目标: device:推送给设备; account:推送给指定帐号,tag:推送给自定义标签; all: 推送给全部
- [backcolor=transparent] request[backcolor=transparent].[backcolor=transparent]Target[backcolor=transparent] [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"all"[backcolor=transparent];
- [backcolor=transparent] [backcolor=transparent]//根据Target来设定,如Target=device, 则对应的值为 设备id1,设备id2. 多个值使用逗号分隔.(帐号与设备有一次最多100个的限制)
- [backcolor=transparent] request[backcolor=transparent].[backcolor=transparent]TargetValue[backcolor=transparent] [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"all"[backcolor=transparent];
- [backcolor=transparent] [backcolor=transparent]// 设备类型deviceType 取值范围为:0~3. iOS设备: 0; Android设备: 1; 全部: 3, 这是默认值.
- [backcolor=transparent] request[backcolor=transparent].[backcolor=transparent]DeviceType[backcolor=transparent] [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]1[backcolor=transparent];
- [backcolor=transparent] [backcolor=transparent]// 推送配置
- [backcolor=transparent] [backcolor=transparent]// 0:表示消息(默认为0), 1:表示通知
- [backcolor=transparent] request[backcolor=transparent].[backcolor=transparent]Type[backcolor=transparent] [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]0[backcolor=transparent];
- [backcolor=transparent] [backcolor=transparent]// 消息的标题
- [backcolor=transparent] request[backcolor=transparent].[backcolor=transparent]Title[backcolor=transparent] [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]".net Title"[backcolor=transparent];
- [backcolor=transparent] [backcolor=transparent]// 消息的内容
- [backcolor=transparent] request[backcolor=transparent].[backcolor=transparent]Body[backcolor=transparent] [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]".net body"[backcolor=transparent];
- [backcolor=transparent] [backcolor=transparent]// 通知的摘要
- [backcolor=transparent] request[backcolor=transparent].[backcolor=transparent]Summary[backcolor=transparent] [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]".net Summary"[backcolor=transparent];
- [backcolor=transparent] [backcolor=transparent]// 推送配置: iOS
- [backcolor=transparent] [backcolor=transparent]// iOS应用图标右上角角标
- [backcolor=transparent] request[backcolor=transparent].[backcolor=transparent]IOSBadge[backcolor=transparent] [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"1"[backcolor=transparent];
- [backcolor=transparent] [backcolor=transparent]// iOS通知声音
- [backcolor=transparent] request[backcolor=transparent].[backcolor=transparent]IOSMusic[backcolor=transparent] [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"default"[backcolor=transparent];
- [backcolor=transparent] [backcolor=transparent]//iOS通知标题(iOS 10+)
- [backcolor=transparent] request[backcolor=transparent].[backcolor=transparent]IOSTitle[backcolor=transparent] [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"iOS 10 Title"[backcolor=transparent];
- [backcolor=transparent] [backcolor=transparent]//iOS通知副标题(iOS 10+)
- [backcolor=transparent] request[backcolor=transparent].[backcolor=transparent]IOSSubtitle[backcolor=transparent] [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"iOS 10 Subtitle"[backcolor=transparent];
- [backcolor=transparent] [backcolor=transparent]//使能通知扩展处理(iOS 10+)
- [backcolor=transparent] request[backcolor=transparent].[backcolor=transparent]IOSMutableContent[backcolor=transparent] [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]true[backcolor=transparent];
- [backcolor=transparent] [backcolor=transparent]//设定通知Category
- [backcolor=transparent] request[backcolor=transparent].[backcolor=transparent]IOSNotificationCategory[backcolor=transparent] [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"test_category"[backcolor=transparent];
- [backcolor=transparent] [backcolor=transparent]//自定义的kv结构,开发者扩展用 针对iOS设备, iOS 10+ 可以用attachment关键字指定富媒体推送通知的资源Url
- [backcolor=transparent] request[backcolor=transparent].[backcolor=transparent]IOSExtParameters[backcolor=transparent] [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"{\"attachment\":\"https://xxxx.xxx/notification_pic.png\",\"key1\":\"value1\"}"[backcolor=transparent];
- [backcolor=transparent] request[backcolor=transparent].[backcolor=transparent]ApnsEnv[backcolor=transparent] [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"DEV"[backcolor=transparent];
- [backcolor=transparent] [backcolor=transparent]// 推送时设备不在线(既与移动推送的服务端的长连接通道不通),则这条推送会做为通知,通过苹果的APNs通道送达一次(发送通知时,Summary为通知的内容,Message不起作用)。注意:离线消息转通知仅适用于生产环境
- [backcolor=transparent] [backcolor=transparent]// request.Remind = false;
- [backcolor=transparent] [backcolor=transparent]// 推送配置: Android
- [backcolor=transparent] [backcolor=transparent]// 点击通知后动作,1:打开应用 2: 打开应用Activity 3:打开 url 4 :无跳转逻辑
- [backcolor=transparent] request[backcolor=transparent].[backcolor=transparent]AndroidOpenType[backcolor=transparent] [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"3"[backcolor=transparent];
- [backcolor=transparent] [backcolor=transparent]// Android收到推送后打开对应的url,仅仅当androidOpenType=3有效
- [backcolor=transparent] request[backcolor=transparent].[backcolor=transparent]AndroidOpenUrl[backcolor=transparent] [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"http://www.baidu.com"[backcolor=transparent];
- [backcolor=transparent] [backcolor=transparent]//设置该参数后启动小米托管弹窗功能,此处指定通知点击后跳转的Activity(托管弹窗的前提条件:1. 继承小米辅助通道;2. storeOffline设为true)
- [backcolor=transparent] [backcolor=transparent]//request.XiaomiActivity = "_Your_XiaoMi_Activity_";
- [backcolor=transparent] [backcolor=transparent]// 设定android类型设备通知的扩展属性
- [backcolor=transparent] request[backcolor=transparent].[backcolor=transparent]AndroidExtParameters[backcolor=transparent] [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"{\"k1\":\"android\",\"k2\":\"v2\"}"[backcolor=transparent];
- [backcolor=transparent] [backcolor=transparent]// 推送控制
- [backcolor=transparent] [backcolor=transparent]//String pushTime = DateTime.UtcNow.AddSeconds(3).ToString("yyyy-MM-ddTHH\\:mm\\:ssZ");
- [backcolor=transparent] [backcolor=transparent]//request.PushTime = pushTime;//延迟3秒发送
- [backcolor=transparent] [backcolor=transparent]//String expireTime = DateTime.UtcNow.AddDays(2).ToString("yyyy-MM-ddTHH\\:mm\\:ssZ");
- [backcolor=transparent] [backcolor=transparent]//request.ExpireTime = expireTime;//设置过期时间为2天
- [backcolor=transparent] [backcolor=transparent]//request.StoreOffline = false;
- [backcolor=transparent] [backcolor=transparent]try
- [backcolor=transparent] [backcolor=transparent]{
- [backcolor=transparent] [backcolor=transparent]PushResponse[backcolor=transparent] response [backcolor=transparent]=[backcolor=transparent] client[backcolor=transparent].[backcolor=transparent]GetAcsResponse[backcolor=transparent]([backcolor=transparent]request[backcolor=transparent]);
- [backcolor=transparent] [backcolor=transparent]Console[backcolor=transparent].[backcolor=transparent]WriteLine[backcolor=transparent]([backcolor=transparent]"RequestId:"[backcolor=transparent] [backcolor=transparent]+[backcolor=transparent] response[backcolor=transparent].[backcolor=transparent]RequestId[backcolor=transparent]);
- [backcolor=transparent] [backcolor=transparent]Console[backcolor=transparent].[backcolor=transparent]WriteLine[backcolor=transparent]([backcolor=transparent]"ResponseId:"[backcolor=transparent]+[backcolor=transparent]response[backcolor=transparent].[backcolor=transparent]ResponseId[backcolor=transparent]);
- [backcolor=transparent] [backcolor=transparent]Console[backcolor=transparent].[backcolor=transparent]ReadLine[backcolor=transparent]();
- [backcolor=transparent] [backcolor=transparent]}[backcolor=transparent] [backcolor=transparent]catch[backcolor=transparent] [backcolor=transparent]([backcolor=transparent]ServerException[backcolor=transparent] e[backcolor=transparent])
- [backcolor=transparent] [backcolor=transparent]{
- [backcolor=transparent] [backcolor=transparent]Console[backcolor=transparent].[backcolor=transparent]WriteLine[backcolor=transparent]([backcolor=transparent]e[backcolor=transparent].[backcolor=transparent]ErrorCode[backcolor=transparent]);
- [backcolor=transparent] [backcolor=transparent]Console[backcolor=transparent].[backcolor=transparent]WriteLine[backcolor=transparent]([backcolor=transparent]e[backcolor=transparent].[backcolor=transparent]ErrorMessage[backcolor=transparent]);
- [backcolor=transparent] [backcolor=transparent]Console[backcolor=transparent].[backcolor=transparent]ReadLine[backcolor=transparent]();
- [backcolor=transparent] [backcolor=transparent]}[backcolor=transparent] [backcolor=transparent]catch[backcolor=transparent] [backcolor=transparent]([backcolor=transparent]ClientException[backcolor=transparent] e[backcolor=transparent])
- [backcolor=transparent] [backcolor=transparent]{
- [backcolor=transparent] [backcolor=transparent]Console[backcolor=transparent].[backcolor=transparent]WriteLine[backcolor=transparent]([backcolor=transparent]e[backcolor=transparent].[backcolor=transparent]ErrorCode[backcolor=transparent]);
- [backcolor=transparent] [backcolor=transparent]Console[backcolor=transparent].[backcolor=transparent]WriteLine[backcolor=transparent]([backcolor=transparent]e[backcolor=transparent].[backcolor=transparent]ErrorMessage[backcolor=transparent]);
- [backcolor=transparent] [backcolor=transparent]Console[backcolor=transparent].[backcolor=transparent]ReadLine[backcolor=transparent]();
- [backcolor=transparent] [backcolor=transparent]}