Asp.net 推送通知 [关闭]

Posted

技术标签:

【中文标题】Asp.net 推送通知 [关闭]【英文标题】:Asp.net Push notifications [closed] 【发布时间】:2016-03-18 22:46:56 【问题描述】:

在我的 android 应用上未收到推送通知。我尝试了许多提供商,但仍然无法正常工作。 不,因为我的后端在 Asp.net 中,所以我想使用 Azure 推送中心,我不知道从哪里开始。而且我在推送通知方面也有一点经验。例如,我将如何发送简单的推送,例如“检查更新”。

【问题讨论】:

【参考方案1】:

@Amr Alaa:您可以使用 azure 通知中心。它的实现非常简单。

您可以在 azure.by 中创建通知中心,方法是转到新建 > 应用程序服务 > 服务总线 > 通知中心 > 快速创建 > 提供中心名称 > 创建

之后您可以在您的 asp.net 应用程序/api 中使用下面的代码(无论是否在 azure 上。)

//you can create class and get instance of the hub in constructor

    private NotificationHubClient hub = NotificationHubClient.CreateClientFromConnectionString("Your connectionstring", "your Notification hub name");

在启动应用程序时从您的 android 应用程序使用设备令牌调用此方法。

public async string registerpushhandle(string handle = null)
    

        try
        


            string newRegistrationId = null;

            if (handle != null)
            
                var registrations = await hub.GetRegistrationsByChannelAsync(handle, 500);

                foreach (RegistrationDescription registration in registrations)
                
                    if (newRegistrationId == null)
                    
                        newRegistrationId = registration.RegistrationId;
                    
                    else
                    
                        await hub.DeleteRegistrationAsync(registration);
                    
                
            

            if (newRegistrationId == null) newRegistrationId = await hub.CreateRegistrationIdAsync();


        
        catch (Exception ex)
        


        
        return newRegistrationId 
    

在获取注册 ID 后,通过传递您的注册 ID、平台和设备令牌来调用此方法。

public async void registerpushid(string id, string platform, string handle)
        


            try
            

                RegistrationDescription registration = null;
                switch (platform.ToLower())
                
                    case "mpns":
                        registration = new MpnsRegistrationDescription(handle);
                        break;
                    case "wns":
                        registration = new WindowsRegistrationDescription(handle);
                        break;
                    case "apns":
                        registration = new AppleRegistrationDescription(handle);
                        break;
                    case "gcm":
                        registration = new GcmRegistrationDescription(handle);
                        break;

                

                registration.RegistrationId = id;



                registration.Tags = new HashSet<string>();
                registration.Tags.Add(handle);
                 registration.Tags.Add("yourcustometag");


                try
                
                    await hub.CreateOrUpdateRegistrationAsync(registration);


                
                catch (MessagingException e)
                

                


            
            catch (Exception ex)
            


            

【讨论】:

【参考方案2】:

Amr,您可以使用 pushsharp (https://github.com/Redth/PushSharp),它是一个完整的库,可以将推送通知发送到 Android、ios 等。

以下是配置和运行它的指南: https://github.com/Redth/PushSharp/wiki/How-to-Configure-&-Send-GCM-Google-Cloud-Messaging-Push-Notifications-using-PushSharp

我在几个项目中使用过它,效果很好。

希望对你有帮助

【讨论】:

【参考方案3】:

尝试以下链接,因为它们提供完全免费的 Android 无限制推送通知,并且实现起来非常简单:

https://onesignal.com/

https://pushover.net/

http://rzlts.com/

希望这会有所帮助。

【讨论】:

以上是关于Asp.net 推送通知 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Asp.net 中的推送通知

通过asp.net windows phone 8发送推送通知

ASP.Net MVC PWA 的推送通知

用于 asp.net 的 GCM 推送通知服务器端

Windows 8.x 设备的 Asp.net 中的推送通知

带有 C# asp.net 的 GCM 推送通知在 android 设备中提供 null 作为通知