ios - Xamarin Forms iOS 本地通知不显示

标签 ios xamarin.ios xamarin.forms

我正在 Xamarin.Forms 中构建应用程序,但无法在 iOS 中显示本地通知。 我已按照 https://developer.xamarin.com/guides/ios/platform_features/user-notifications/enhanced-user-notifications/ 中的指南进行操作并且通知仍然没有显示。 我在 AppDelegate 的 FinishedLaunching 方法中添加了以下内容:

    UNUserNotificationCenter.Current.RequestAuthorization (UNAuthorizationOptions.Alert, (approved, err) => {});

在我希望显示通知的页面中:

using UserNotifications;


var content = new UNMutableNotificationContent ();
content.Title = "Notification Title";
content.Subtitle = "Notification Subtitle";
content.Body = "Test Notification.";
content.Badge = 1;

var trigger =  UNTimeIntervalNotificationTrigger.CreateTrigger (5, false);

var requestID = "sampleRequest";
var request = UNNotificationRequest.FromIdentifier (requestID, content, 
trigger);

UNUserNotificationCenter.Current.AddNotificationRequest (request, (err) => {
if (err != null) {
    // Do something with error...
}
});

我所有的 nuGet 包都是最新的,我已经尝试在 iOS iPhone 模拟器和物理 iPad 设备上进行测试。

我在这里遗漏了什么吗?

最佳答案

实际上,如果您的应用程序在前台,iOS 系统默认会静音通知。

解决方案:

有两种解决方案:

  1. 当您触发延迟通知时,通过单击主页按钮转到后台。然后会显示通知。

  2. 执行委托(delegate) userNotificationCenter:willPresentNotification:withCompletionHandler: ,当应用程序在前台时有通知到达时,它将被调用。 例如,这是在应用程序位于前台时启用通知的代码片段:

    UNUserNotificationCenter.Current.Delegate = new MyNotificationDelegate();
    
    public class MyNotificationDelegate: UNUserNotificationCenterDelegate
    {
        public override void WillPresentNotification(UNUserNotificationCenter center, UNNotification notification,  Action<UNNotificationPresentationOptions> completionHandler)
        {
            completionHandler(UNNotificationPresentationOptions.Alert);
        }
    }
    

关于ios - Xamarin Forms iOS 本地通知不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47336018/

相关文章:

c# - 如何从 xamarin.forms 调用平台特定页面

ios - 使用 bash 获取哈希值

c# - 如何使用 Monotouch Professional 许可证在 iPad 上部署应用程序

c# - Xamarin.Forms UWP 项目 当前不会命中断点。没有为该文档加载任何符号

ios - 在 ios 应用程序中使用 svg 或字体图标

visual-studio - 如何在 Visual Studio 2017 中使用自定义条件编译符号?

xamarin - 是否可以在可移植项目(Android 和 iOS)中应用 "Material Design"?

ios - iOS中如何通过CMMotionManager获取实际加速度

android - css :focus not working in iOS Safari/Chrome, 在 Android/PC Chrome 上正常

ios - 如何修复由不允许的用户代理导致的功能受损?