Files
HeartRateMonitorAndroid/Platforms/iOS/IosNotificationHelper.cs
2025-07-14 00:42:12 +08:00

64 lines
2.0 KiB
C#

using Foundation;
using UserNotifications;
namespace HeartRateMonitorAndroid.Platforms.iOS
{
// iOS平台特定的通知帮助类
public static class IosNotificationHelper
{
// 请求通知权限
public static async Task RequestNotificationPermission()
{
var options = UNAuthorizationOptions.Alert | UNAuthorizationOptions.Sound;
var center = UNUserNotificationCenter.Current;
var result = await center.RequestAuthorizationAsync(options);
// 权限请求结果处理
if (result.Item1)
{
// 已获得权限
Console.WriteLine("通知权限获取成功");
}
else
{
// 权限被拒绝
Console.WriteLine("通知权限被拒绝");
}
}
// 显示本地通知
public static void ShowNotification(string title, string body, double timeIntervalSeconds = 0.1)
{
var content = new UNMutableNotificationContent
{
Title = title,
Body = body,
Sound = UNNotificationSound.Default
};
// 设置触发器
var trigger = UNTimeIntervalNotificationTrigger.CreateTrigger(timeIntervalSeconds, false);
// 创建请求
var requestId = Guid.NewGuid().ToString();
var request = UNNotificationRequest.FromIdentifier(requestId, content, trigger);
// 添加请求
UNUserNotificationCenter.Current.AddNotificationRequest(request, (error) =>
{
if (error != null)
{
Console.WriteLine($"通知发送失败: {error}");
}
});
}
// 取消所有通知
public static void CancelAllNotifications()
{
UNUserNotificationCenter.Current.RemoveAllPendingNotificationRequests();
UNUserNotificationCenter.Current.RemoveAllDeliveredNotifications();
}
}
}