首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Xamarin.iOS RegisteredForRemoteNotifications未调用

Xamarin.iOS RegisteredForRemoteNotifications未调用
EN

Stack Overflow用户
提问于 2017-06-29 13:59:42
回答 4查看 6.3K关注 0票数 8

我正在使用Xamarin表单,目前正在尝试将推送通知用于iOS项目。我已经按照 Xamarin指南向我的iOS应用程序添加了通知,但是RegisteredForRemoteNotifications方法从未被调用。

我还创建了推送通知证书和启用后台通知。甚至连FailedToRegisterForRemoteNotifications也没有被调用过。

我能做什么?

PS:我使用的是iPhone 5和iOS 10,所以我还阅读了用户通知框架上的帖子。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-07-03 09:44:02

所以,在AppStore上发布之后,它就开始工作了.

票数 2
EN

Stack Overflow用户

发布于 2017-06-29 14:09:17

注意到Xamarin指南顶部的大注释的要点,很多人有时会忽略它们。

注意:本节中的信息与iOS 9及更早版本有关,在这里保留它是为了支持较早的iOS版本。有关iOS 10及更高版本,请参阅“用户通知框架指南”,以支持iOS设备上的本地和远程通知。

如果能看到您自己的一些代码示例会很好,但它既不在这里也不在那里。

因此,正如您计划使用iOS 10设备一样,下面是我们使用的10.3 backwards.This代码中的代码,这些代码位于AppDelegate类中的FinishedLaunching()方法中。

代码语言:javascript
运行
复制
            if (UIDevice.CurrentDevice.CheckSystemVersion(10, 0))
            {
                // iOS 10 or later
                var authOptions = UNAuthorizationOptions.Alert | UNAuthorizationOptions.Badge | UNAuthorizationOptions.Sound;
                UNUserNotificationCenter.Current.RequestAuthorization(authOptions, (granted, error) =>
                {
                    if (granted)
                    {
                        InvokeOnMainThread(() => {
                            UIApplication.SharedApplication.RegisterForRemoteNotifications();
                        });
                    }
                });

                // For iOS 10 display notification (sent via APNS)
                UNUserNotificationCenter.Current.Delegate = ADSelf;
            }
            else
            {
                // iOS 9 or before
                var allNotificationTypes = UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound;
                var settings = UIUserNotificationSettings.GetSettingsForTypes(allNotificationTypes, null);
                UIApplication.SharedApplication.RegisterUserNotificationSettings(settings);
            }

关键是以下几行:

代码语言:javascript
运行
复制
UIApplication.SharedApplication.RegisterForRemoteNotifications();

代码语言:javascript
运行
复制
UIApplication.SharedApplication.RegisterUserNotificationSettings(settings);
票数 5
EN

Stack Overflow用户

发布于 2019-01-23 02:18:23

如果设备是模拟设备,则不能注册它。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44827285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档