首页 > 系统 > iOS > 正文

在. net平台下,推送IOS,Android,Windows Phone消息

2019-11-17 03:17:14
字体:
来源:转载
供稿:网友

在. net平台下,推送IOS,Android,Windows Phone消息

1,新建项目,在项目中添加引用,dll文件已经上传在百度网盘,点击下载

2,引入命名空间

using PushSharp;using PushSharp.Android;using PushSharp.Apple;using PushSharp.Core;using PushSharp.Windows;using PushSharp.WindowsPhone;

3,初始化写入下面代码

var push = new PushBroker();            //Wire up the events for all the services that the broker registers            push.OnNotificationSent += NotificationSent;            push.OnChannelException += ChannelException;            push.OnServiceException += ServiceException;            push.OnNotificationFailed += NotificationFailed;            push.OnDeviceSubscriptionExpired += DeviceSubscriptionExpired;            push.OnDeviceSubscriptionChanged += DeviceSubscriptionChanged;            push.OnChannelCreated += ChannelCreated;            push.OnChannelDestroyed += ChannelDestroyed;                        //-------------------------            // 苹果推送            //-------------------------            //Configure and start Apple APNS            // IMPORTANT: 获取正确的证书            var appleCert = File.ReadAllBytes(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "../../../Resources/PushSharp.Apns.Sandbox.p12"));            //IMPORTANT: 正确的密码            push.RegisterAppleService(new ApplePushChannelSettings(appleCert, "CERTIFICATE PASSWord HERE")); //Extension method            //开始推送            push.QueueNotification(new AppleNotification()                                       .ForDeviceToken("设备的TokenID")                                       .WithAlert("Hello World!")                                       .WithBadge(7)                                       .WithSound("sound.caf"));                        //---------------------------            // ANDROID GCM 推送            //---------------------------            //Configure and start Android GCM            //IMPORTANT: 正确的Google API's key            push.RegisterGcmService(new GcmPushChannelSettings("YOUR Google API's Console API access  API KEY for Server Apps HERE"));            //IMPORTANT: 手机设备注册号            push.QueueNotification(new GcmNotification().ForDeviceRegistrationId("手机设备注册号")                                  .WithJson("{/"alert/":/"Hello World!/",/"badge/":7,/"sound/":/"sound.caf/"}"));                        //-----------------------------            // WINDOWS PHONE 推送            //-----------------------------            //Configure and start Windows Phone Notifications            push.RegisterWindowsPhoneService();            push.QueueNotification(new WindowsPhoneToastNotification()                .ForEndpointUri(new Uri("设备注册CHANNEL URI"))                .ForOSVersion(WindowsPhoneDeviceOSVersion.MangoSevenPointFive)                .WithBatchingInterval(BatchingInterval.Immediate)                .WithNavigatePath("/MainPage.xaml")                .WithText1("PushSharp")                .WithText2("This is a Toast"));                        Console.WriteLine("Waiting for Queue to Finish...");            //停止            push.StopAllServices();            Console.WriteLine("Queue Finished, PRess return to exit...");            Console.ReadLine();            

4,实现注册方法

static void DeviceSubscriptionChanged(object sender, string oldSubscriptionId, string newSubscriptionId, INotification notification)        {            //Currently this event will only ever happen for Android GCM            Console.WriteLine("Device Registration Changed:  Old-> " + oldSubscriptionId + "  New-> " + newSubscriptionId + " -> " + notification);        }        static void NotificationSent(object sender, INotification notification)        {            Console.WriteLine("Sent: " + sender + " -> " + notification);        }        static void NotificationFailed(object sender, INotification notification, Exception notificationFailureException)        {            Console.WriteLine("Failure: " + sender + " -> " + notificationFailureException.Message + " -> " + notification);        }        static void ChannelException(object sender, IPushChannel channel, Exception exception)        {            Console.WriteLine("Channel Exception: " + sender + " -> " + exception);        }        static void ServiceException(object sender, Exception exception)        {            Console.WriteLine("Channel Exception: " + sender + " -> " + exception);        }        static void DeviceSubscriptionExpired(object sender, string expiredDeviceSubscriptionId, DateTime timestamp, INotification notification)        {            Console.WriteLine("Device Subscription Expired: " + sender + " -> " + expiredDeviceSubscriptionId);        }        static void ChannelDestroyed(object sender)        {            Console.WriteLine("Channel Destroyed for: " + sender);        }        static void ChannelCreated(object sender, IPushChannel pushChannel)        {            Console.WriteLine("Channel Created for: " + sender);        }

5,大功告成,每一种系统都需要不同的验证信息,有完整的信息在使用本例子(比如ios证书,密码,设备tokenID等),亲自测过,正常!

6,有什么不懂的地方和我联系(shixudong3@yeah.net)


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表