是否可以在 Xamarin Forms 中禁用应用程序的通知设置

Posted

技术标签:

【中文标题】是否可以在 Xamarin Forms 中禁用应用程序的通知设置【英文标题】:Is it possible to disable Notification settings for the application in Xamarin Forms 【发布时间】:2021-11-02 05:29:35 【问题描述】:

有没有办法通过代码禁用应用程序的警报设置?我已经使用下面的代码启用了这些设置,但是我找不到任何方法可以在用户操作时再次禁用这些设置。

var pushSettings = UIUserNotificationSettings.GetSettingsForTypes(
                UIUserNotificationType.Alert |
                UIUserNotificationType.Badge |
                UIUserNotificationType.Sound,
                new NSSet());

UIApplication.SharedApplication.RegisterUserNotificationSettings(pushSettings);
UIApplication.SharedApplication.RegisterForRemoteNotifications();

有以下方法,但它不会在应用程序设置中禁用通知。

 UIApplication.SharedApplication.UnregisterForRemoteNotifications

【问题讨论】:

【参考方案1】:

问题似乎是 ios 在取消注册后的一段时间内阻止向 Apple 注册推送通知。关于注销的 Apple Docs 说:

您应该只在极少数情况下调用此方法,例如当 该应用程序的新版本取消了对所有类型遥控器的支持 通知。用户可以暂时阻止应用接收 通过设置的通知部分进行远程通知 应用程序。通过此方法取消注册的应用始终可以重新注册。

https://developer.apple.com/documentation/uikit/uiapplication/1623093-unregisterforremotenotifications?preferredLanguage=occ

所以,只要您确实需要,就不要调用 unregisterForRemoteNotifications(请参阅 Apple Doc)。

用户可以完全控制为您的应用启用和禁用通知,如果您想在代码中执行此操作,我认为您可以创建一个弹出窗口以引导 设置页面。像这样的问题显示How to turn on and off notifications in iOS?

【讨论】:

没问题,如果用户不想收到通知,我已经在注销设备了。即使注销后,手机上的应用程序设置仍然启用通知。所以在这里用户可能会混淆设置仍然显示启用通知但在应用程序内部他已经取消注册。所以我也只想更新应用程序设置。 检查更新 同样,这并不建议我们如何通过代码禁用设置

以上是关于是否可以在 Xamarin Forms 中禁用应用程序的通知设置的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin Forms ListView 元素被禁用

Xamarin.Forms 中iOS通过URL Scheme判断应用是否安装

有没有办法在 iOS 项目上禁用 xamarin.forms.maps 上的信息窗口?

Xamarin.Forms - 如果 webView 包含在 Android 上打开的模式或菜单,有没有办法禁用拉刷新?

是否可以在 XAML (Xamarin.Forms) 中混合 OnIdiom 和 OnPlatform?

是否可以在 Xamarin Forms ContentView 中嵌入 Android.VideoView