首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当应用程序在后台时,在不调用DidReceiveRemoteNotification的情况下显示NotificationHub的Xamarin iOS通知

在Xamarin iOS开发中,可以使用NotificationHub来实现推送通知功能。NotificationHub是Azure提供的一项云服务,用于发送和管理推送通知。它可以与Xamarin.iOS应用程序集成,实现在应用程序后台时显示通知的功能。

具体实现步骤如下:

  1. 配置Azure Notification Hub:首先,在Azure门户上创建一个Notification Hub实例,并获取连接字符串和Hub名称。
  2. 集成Notification Hub SDK:在Xamarin.iOS项目中,使用NuGet包管理器安装Azure Notification Hubs SDK。可以通过在Visual Studio中右键点击项目,选择“管理NuGet程序包”来搜索并安装。
  3. 注册设备:在应用程序启动时,可以使用NotificationHub SDK提供的Register方法来注册设备。这将为设备生成一个唯一的标识符,用于将推送通知发送到该设备。
  4. 处理推送通知:在AppDelegate.cs文件中,可以重写DidReceiveRemoteNotification方法来处理接收到的推送通知。在这个方法中,可以获取通知的内容,并根据需要执行相应的操作,例如显示通知、更新UI等。

下面是一个示例代码:

代码语言:txt
复制
using Foundation;
using UIKit;
using Microsoft.Azure.NotificationHubs;

namespace YourAppNamespace
{
    [Register("AppDelegate")]
    public class AppDelegate : UIApplicationDelegate
    {
        public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
        {
            // 注册设备
            RegisterForRemoteNotifications();

            return true;
        }

        public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken)
        {
            // 获取设备标识符
            var hub = new SBNotificationHub("<connection string>", "<hub name>");
            hub.RegisterNativeAsync(deviceToken, null, error =>
            {
                if (error != null)
                {
                    // 注册失败
                }
                else
                {
                    // 注册成功
                }
            });
        }

        public override void DidReceiveRemoteNotification(UIApplication application, NSDictionary userInfo, Action<UIBackgroundFetchResult> completionHandler)
        {
            // 处理推送通知
            // 在这里可以获取通知的内容,并根据需要执行相应的操作
            // 例如显示通知、更新UI等
        }

        private void RegisterForRemoteNotifications()
        {
            if (UIDevice.CurrentDevice.CheckSystemVersion(10, 0))
            {
                UNUserNotificationCenter.Current.RequestAuthorization(UNAuthorizationOptions.Alert | UNAuthorizationOptions.Sound | UNAuthorizationOptions.Badge, (granted, error) =>
                {
                    if (granted)
                    {
                        InvokeOnMainThread(UIApplication.SharedApplication.RegisterForRemoteNotifications);
                    }
                });
            }
            else if (UIDevice.CurrentDevice.CheckSystemVersion(8, 0))
            {
                var settings = UIUserNotificationSettings.GetSettingsForTypes(UIUserNotificationType.Alert | UIUserNotificationType.Sound | UIUserNotificationType.Badge, null);
                UIApplication.SharedApplication.RegisterUserNotificationSettings(settings);
                UIApplication.SharedApplication.RegisterForRemoteNotifications();
            }
        }
    }
}

在上述代码中,需要将<connection string><hub name>替换为实际的Azure Notification Hub连接字符串和Hub名称。

推荐的腾讯云相关产品:腾讯云移动推送(https://cloud.tencent.com/product/tpns)

腾讯云移动推送是腾讯云提供的一项移动推送服务,可以帮助开发者实现移动应用的推送通知功能。它提供了丰富的功能和灵活的接口,支持多种推送方式和推送场景,适用于各种规模的应用。

希望以上信息对您有所帮助!

相关搜索:当应用程序在Xamarin iOS中处于后台时,不会显示本地通知当用户在我的应用程序后台时,当计时器到达0时,我如何显示通知?在应用程序处于后台时接收来自默认通知中心的通知避免在应用进入后台时显示原生iOS屏幕的外部显示Xamarin.Forms:在不绑定的情况下从代码后台向ListView添加项?当尝试在Xamarin.iOS中的iOS 13中运行时,应用程序在UnregisterAllAsync中严重崩溃当聚焦时,在ios的xamarin表单中删除物料录入控件中的下划线如何创建显示键盘切换通知的后台服务,最好是在键盘打开时?当应用程序在IOS的后台时,firebase.notifications().getInitialNotification()不起作用仅当从iOS 12设备上的应用程序商店下载时,iOS应用程序在启动时崩溃IOS/Objective-C:无结果时在tableview的后台视图中显示消息iOS 5:默认情况下,我可以在"通知中心"中安装我的应用程序吗?我尝试在我的iPhone上后台显示FCM通知,但当我使用Swift发送此通知时无法工作FCM推送通知在返回应用程序时打开,而不是显示在iOS的状态栏中Xamarin.ios -在web视图中显示PDF时的上一步/完成按钮当tabpanel是干净的时,在闪亮的应用程序中显示文本,并在显示输出时隐藏它在ios中单击youtube共享按钮时在应用程序列表中显示我的应用程序Xamarin: ios应用程序中的推送到达问题;在应用程序之外到达时没有问题当Visual="Material“在IsPassword=为”True“的条目中时iOS 14应用程序冻结在没有internet连接的情况下打开应用程序并在iOS上显示警报
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

推送-推送原理性说明

而当设备处于非联网状态的时候,APNs服务器会保留Provider所推送的最后一条通知,当设备转换为连网状态时,APNs则把其保留的最后一条通知推送给我们的设备;如果设备长时间处于非联网状态下,那么APNs...推送通知本身是 iOS 系统的行为,所以在 App 没有运行(没有在前台也没有在后台)的时候:仍然能够推送及接收(通知中心通知、顶部横幅、刷新 App 右上角的小圆点即 badge [以下简称角标] 等都会由系统来控制和展示...但是收到推送时,是无法在 App 的代码中获取到通知内容的。因为沙盒机制,此时 App 的任何代码都不可能被执行。...处于后台:可通过didReceiveRemoteNotification:fetchCompletionHandler:获取通知内容 // 获取情况中与普通推送的唯一不同点,此时 iOS 系统允许开发者在...处于后台:可通过 didReceiveRemoteNotification:fetchCompletionHandler: 获取通知内容 //获取情况中与普通推送的唯一不同点,此时 iOS 系统允许开发者在

3.8K20

iOS远程消息推送

远程推送是需要网络,服务端通过苹果消息推送服务器APNS实现推送,无论APP处于前台、后台或者被kill的情况下仍能收到消息通知,如新闻推送、聊天消息接收等。 本文要讲的是后者远程消息推送。...(2)当App处于后台时,且开启了 Remote Notification,如果系统收到推送消息,当用户点击推送消息时,会执行application:(UIApplication *)applicationdidReceiveRemoteNotification...(3)在App没有运行(APP退出)的情况下,系统收到推送消息,用户点击推送消息,启动App。...aps 中可以包含以下字段中的一个或多个: Alert:其内容可以为字符串或者字典,如果是字符串,那么将会在通知中显示这条内容。 badge:其值为数字,表示当通知到达设备时,应用的角标变为多少。...(2)消息内容 消息简介:客户端收到消息推送有两种形式,客户端后台运行或退出时一般推送显示在通知栏,客户端前台运行一般弹出弹框或不显示,简介内容注意字数过多溢出情况。

4.5K20
  • 项目中友盟推送适配iOS10

    (声明:当前项目中用的是友盟推送) 对于客户端来说,推送有三种情况:1.程序在前台运行  2.程序在后台运行   3.程序不在运行 先看下本人在iOS10之前的推送代码: 当程序在运行(前台、后台)时接收到通知...如果是在后台运行在点击推送消息后就会直接进行页面的跳转,如果是在前台运行需要用户进行跳转的选择,示意图: ? 当程序不在运行时接收到通知: ?...由于我用了跳转选择所以即使不适配iOS10也没关系,因为如果在iOS10环境下运行就不会再走didReceiveRemoteNotification这个方法了。...适配iOS10是必然的,下面是适配iOS10的代码: ? ? 疑问:iOS10之后不走didReceiveRemoteNotification方法,为什么alertView控件还能显示出来?...解答:alertView是通过走iOS10新增的方法显示出来的。

    93610

    推送-远程通知推送教程

    在iOS 9上,远程推送可以做到: 显示短文本 播放通知提示音 设置APP图标的角标 在不打开APP的情况下,允许用户与APP交互 允许APP在后台静默唤醒来执行任务 这份远程推送通知教程会告诉你远程推送的工作原理的并让你了解它的一些特性...编绎运行即可查看当前最新播客节目: 1463988997846298.jpg 这个App的存在的问题是当有新的播客节目可以获取时不能通知到用户。并且也不能显示任何最新的消息。...如果你应用当前正运行在前台,推送通知将不会被显示。但是 application(_:didReceiveRemoteNotification:) 会被立即调用。...如果你的应用正在运行,或者被挂起在后台,并且用户通过点击通知使应用进入前台 application(_:didReceiveRemoteNotification:) 方法会被调用。...在第一种情况下,WenderCast将到创建一个新的section,并直接打开以显示到这个新建section。

    4K30

    ios入门之消息推送

    前言 在去年的苹果大会上,苹果带来的iOS 10 系统中将之前繁杂的推送通知统一成UserNotifications.framework 来集中管理和使用通知功能,还增加一些实用的功能——撤回单条通知、...更新已展示通知、中途修改通知内容、在通知中显示多媒体资源、自定义UI等功能。...那么在ios10之前,ios的消息推送是怎么分类的呢?...对于app被杀死的情况,要先启动app,启动完毕会调用AppDelegate方法。 需要特别注意的是:在iOS8.0以后本地通知有了一些变化,如果要使用本地通知,需要得到用户的许可。...// 当接受到远程退职时会执行该方法(当进入前台或者应用程序在前台) - (void)application:(UIApplication *)application didReceiveRemoteNotification

    1.9K60

    iOS 点击推送消息跳转指定界面 —总结篇app 在后台app被杀死

    1.png 这个是转成本地推送的方法,当然对于里面数据的转换你要根据你们的业务需求和后台的返回情况做转化,因为你在之后点击本地推送的时候还是要根据你转本地推送所传的值进行对应的跳转的 - (void)...通知内容类 UNMutableNotificationContent * content = [UNMutableNotificationContent new]; //设置通知请求发送时...app图标上显示的数字 content.badge = @2; //设置通知的内容 content.body = payData[@"content"]; //默认的通知提示音...= @"这里是副标题"; //设置通知的标题 content.title = payData[@"title"]; //设置从通知激活app时的launchImage图片...1.前台在收到消息的时候做相应的处理比如转本地推送,弹窗提醒等 2.后台是在点击消息的时候做处理(因为后台的时候推送消息过来之后,的展示苹果已经帮我做好了,直接处理点击挑战就行了,当然如果是本地推送那是我们自己做处理的

    8.5K71

    UIViewController生命周期

    合创建一些附加的view和控件 3、ViewWillAppear 在视图加载完成,并即将显示在屏幕上时,会调用viewWillAppear方法,在这个方法里,可以改变当前屏幕方向或状态栏的风格等。...当挂起时,程序还是停留在内存中的,当系统内存低时,系统就把挂起的程序清除掉,为前台程序提供更多的内存。...生命周期: application didFinishLaunchingWithOptions:当应用程序启动时执行,应用程序启动入口,只在应用程序启动时执行一次。...applicationDidEnterBackground:在应用程序已进入后台程序时,要执行的委托调用。...applicationWillEnterForeground:在应用程序将要进入前台时(被激活),要执行的委托调用,刚好与applicationWillResignActive 方法相对应。

    2K10

    iOS开发--本地通知与远程通知

    设置音效,(提醒作用) 2.设置横幅, 3.设置弹窗, 4.锁屏下也可以呈现, 5.App图标的数字 (即新内容的数量) 至于显示横幅或者弹窗,取决于用户的设置 iOS手机设置中:通知中心-...:3.0]; // 2.2.设置通知的内容 localNote.alertBody = @"在干吗?"....设置alertTitle localNote.alertTitle = @"你有一条新通知"; // 2.7.设置有通知时的音效 localNote.soundName = @...,如果用户打开通知,可以让用户进入一些特定的界面 /* 应用程序在进入前台,或者在前台的时候都会执行该方法 */ - (void)application:(UIApplication *)application...didReceiveLocalNotification:(UILocalNotification *)notification { // 必须要监听--应用程序在后台的时候进行的跳转

    3.3K20

    iOS 点击通知打开对应页面

    通知被点击调用的方法 设备接到apns发来的通知,应用处理通知有以下几种情况: 1)....应用还没有加载 这时如果点击通知的显示按钮,会调用didFinishLaunchingWithOptions,不会调用didReceiveRemoteNotification方法。...3).应用在后台 (1)此时如果收到通知,点击显示按钮,会调用didReceiveRemoteNotification方法。...方法中进行判断是否通过点击通知进入app,设置全局变量,在需要跳转的页面根据全局变量进行跳转 2) 应用在前台或后台 在所有可跳转的页面添加消息的观察者 override func viewWillAppear...只在应用程序启动时执行一次。application参数用来获取应用程序的状态、变量等,值得注意的是字典参数:(NSDictionary *)launchOptions,该参数存储程序启动的原因。

    2.7K20

    iOS Push技术

    “在线Push”; 2)本地Push:这种就是最常见的iOS系统通知(作用相当于传统PC端的提示窗口,在iOS10以后全部整合到UserNotifications.framework框架了),不涉及任何网络数据...,仅仅是让APP拥有一个统一系统通知方式而已,比如:闹钟的定时提醒等; 3)离线/远程Push:这就是iOS程序员最熟悉的APNs这一套东西了,它使得APP处于后台或者被kill的情况下仍能收到网络通知...这里以iOS Qzone为例,当APP在前台时,自己发的说说被点赞了,收到的在线push如下: 3.2 离线/远程push 离线push:当APP在离线(kill掉进程、切到后台、锁屏)...,我们可以看到这里设置为66: 4.3 处理本地push ( iOS10以前) 1)App没有启动情况下处理本地push 这种情况下,当点击通知时,会启动App,而在App...差别就是,如果app在前台是收到离线(远程)push,那么就会调用: 相对的,如果在后台或者杀进程情况下,点击收到的离线push,那么就会调用,如果没有实现: 则会调用:

    1.8K30

    iOS开发——推送跳转到指定页面

    当推送通知到达时,点击推送通知跳转到指定界面,是很多应用都会碰到的一个需求,而要实现这个功能,解决的方法也很多,若是去谷歌搜索,有一个万能跳转的文章可能会进入您的眼帘,但是我实际的去看了这个项目的源码之后...之前的几篇文章,我也在研究iOS开发的组件化的架构模式,也有的应用在走组件化的道路上使用了URL来跳转界面完成解耦,在实现推送时,我们也能沿用这个思路,用URL实现界面的跳转。...来说一说这个基本的使用方式,首先你得跟后台约定推送的参数,比如我在跟后台的约定里,参数名就是url,那么我在拿到推送的userInfo时,就需要把url解析出来。...#pragma mark - 推送地址 static NSString *ARTICLES_URL = @"lix://cms/articles/:id"; //资讯详情 在定义好url的情况下,我们需要先用...[MGJRouter openURL:url]; 到这里,推送之后的页面跳转也就差不多完成了,只要再注意badge的数值处理,前台时推送通知的处理等情况就可以了。

    2K20

    了解iOS消息推送一文就够:史上最全iOS Push技术详解

    ,仅仅是让APP拥有一个统一系统通知方式而已,比如:闹钟的定时提醒等; 3)离线/远程Push:这就是iOS程序员最熟悉的APNs这一套东西了,它使得APP处于后台或者被kill的情况下仍能收到网络通知...3.2 离线/远程push 离线push:当APP在离线(kill掉进程、切到后台、锁屏)时,收到的消息提醒,称为离线push。...这里最简单的以大家常用的手机QQ为例,当APP在后台、锁屏或者被kiil了进程时,收到了消息: ?...4.3 处理本地push ( iOS10以前) 1)App没有启动情况下处理本地push 这种情况下,当点击通知时,会启动App,而在App中,开发人员可以通过实现AppDelegate中的方法:- (...相对的,如果在后台或者杀进程情况下,点击收到的离线push,那么就会调用,如果没有实现: ? 则会调用: ? 若实现了前者,就只调用前者。

    23.6K30

    iOS Push详述,了解一下?

    ------- 离线push:当APP在离线(kill掉进程、切到后台、锁屏)时,收到的消息提醒,称为离线push。...这里最简单的以大家常用的手机QQ为例,当APP在后台、锁屏或者被kiil了进程时,收到了消息: [2.png] 离线push 1、静默push 静默push用的场景不较少,这里只做简要介绍。...本地push实现 一、 iOS10以前本地push弹出方式 -------------------- 试验过iOS10以前的本地push方法在iOS10+的系统也能使用,不过可能有些参数不生效。...push 这种情况下,当点击通知时,会启动App,而在App中,开发人员可以通过实现AppDelegate中的方法:- (BOOL)application:(UIApplication)application...差别就是,如果app在前台是收到离线(远程)push,那么就会调用 [21.png] 相对的,如果在后台或者杀进程情况下,点击收到的离线push,那么就会调用,如果没有实现 [22.png] 则会调用

    4.5K60

    iOS 远程推送概念相关准备工作代码实现:(前提:确保bundleID和网站的配置一样)AppDelegate中的全部代码

    在适当时候,公司根据token号再通知苹果服务器进行消息推送 ?...远程推送和本地推送一样,都需要在两个地方做代码的处理: 接受到通知时调用的代理方法中(前台和后台) 启动时的 didFinishLaunchingWithOptions方法中(退出状态),用 launchOptions...[UIApplicationLaunchOptionsRemoteNotificationKey]获取远程通知对象 (1)前台和后台的推送回调这个代理方法(退出的设置在didFinishLaunchingWithOptions...; (2)前台、后台和退出的推送都会调用这个代理方法(iOS 7之后可用) - (void)application:(UIApplication *)application didReceiveRemoteNotification...} #pragma mark 接收到远程推送的消息时调用此方法(后台和前台时可用) - (void)application:(UIApplication *)application didReceiveRemoteNotification

    1.9K100

    iOS 推送手机消息背后的技术

    开发者通过调用iOS系统方法就可以发起本地消息推送,例如我们最常见的闹钟应用,App能够根据本地存储的闹钟信息直接发起本地通知,因此即使没有网络也能收到闹钟提醒。...等参数的字典类型;badge参数使用整形设置App图标右上角显示的数字,badge设置为0时角标不会显示;sound参数用于设置推送的声音,不传该参数或者传递空字符串则推送不会发出提示音,设置为default...方法中通过completionHandler函数的调用让推送消息直接在前台显示,用户点击前台显示的推送消息时,didReceiveNotificationResponse回调方法也会被执行。...前两个回调方法都能够用于App远程消息推送的处理,同时使用时只有远程静默推送方法会被调用,当payload包含参数content-available=1时,该推送就是静默推送,静默推送不会显示任何推送消息...,当App在后台挂起时,静默推送的回调方法会被执行,开发者有30s的时间内在该回调方法中处理一些业务逻辑,并在处理完成后调用fetchCompletionHandler。

    4K103

    Xamarin 学习笔记 - 配置环境(Windows & iOS)

    你可以在一个Portable工程里面通过XAML加上C#或者使用Xamarin.Android或Xamarin.iOS构建表单,在这种情况下,我们需要用到特定的本地环境,比如说通过C#代码操纵iOS的Storyboard...默认情况下,在安装IDE时,其中一些已经安装,如果你希望添加更多的仿真器,找到Preference->Downloads->Components并选中你希望安装的仿真器。...https://blog.xamarin.com/building-xamarin-forms-apps-net-standard/ 而且你可以包含Azure移动应用程序,作为后台支持的工程。...Xamarin Live Player Visual Studio有一个强大的窗体预览工具,它应该在运行时显示视图,正如每个人都在抱怨的那样,它压根不工作。...一旦发布并使用了应用程序,开发人员就想知道发生了什么并且在发生崩溃时易于维护,你可以从应用程序的字段中获取崩溃报告中的实时堆栈跟踪。

    6.2K20
    领券