IOS 本地通知
  AIPBKp2CgHFy 2023年11月12日 46 0

实现 iOS 本地通知的步骤

1. 创建一个新的 iOS 项目

在创建新的 iOS 项目时,选择 Single View App 模板,并填写相关信息。

2. 导入 UserNotifications.framework

在项目的导航栏中,选择项目的 Target,然后在 General 标签页中,选择 Linked Frameworks and Libraries。点击 "+" 按钮,搜索并选择 UserNotifications.framework,点击 Add 按钮导入该库。

3. 启用通知授权

在 AppDelegate.swift 文件中,添加以下代码:

import UserNotifications

// 在 didFinishLaunchingWithOptions 方法中添加以下代码
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound]) { (granted, error) in
    if granted {
        print("用户已授权接收通知")
    } else {
        print("用户拒绝接收通知")
    }
}

以上代码请求用户授权接收通知,并在回调中打印授权结果。

4. 创建本地通知

在某个需要发送本地通知的地方,例如一个按钮点击事件中,添加以下代码:

// 创建通知内容
let content = UNMutableNotificationContent()
content.title = "这是一个本地通知"
content.body = "这是通知的详细内容"
content.sound = UNNotificationSound.default

// 创建触发器
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)

// 创建通知请求
let request = UNNotificationRequest(identifier: "localNotification", content: content, trigger: trigger)

// 将通知请求添加到通知中心
UNUserNotificationCenter.current().add(request) { (error) in
    if let error = error {
        print("发送本地通知失败:\(error.localizedDescription)")
    } else {
        print("发送本地通知成功")
    }
}

以上代码创建了一个本地通知,并在 5 秒后触发,只触发一次。

5. 处理通知相关回调

在 AppDelegate.swift 文件中,添加以下代码:

// 在 didFinishLaunchingWithOptions 方法中添加以下代码
UNUserNotificationCenter.current().delegate = self

// 添加 UNUserNotificationCenterDelegate 扩展
extension AppDelegate: UNUserNotificationCenterDelegate {
    // 当应用在前台运行时,接收到通知会调用该方法
    func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
        completionHandler([.alert, .sound, .badge])
    }
    
    // 当用户点击通知时,会调用该方法
    func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
        // 处理用户点击通知的操作
        completionHandler()
    }
}

以上代码设置了 AppDelegate 为通知中心的代理,并实现了两个相关的回调方法,其中 willPresent 方法处理了应用在前台运行时接收到通知的展示方式,didReceive 方法处理了用户点击通知时的操作。

6. 运行程序

现在,你可以运行程序,并点击按钮来发送本地通知。在授权弹窗中选择允许后,你将在 5 秒后收到一条本地通知,并在控制台看到相关的输出信息。

通过以上步骤,你已经成功实现了 iOS 的本地通知功能。你可以根据自己的需求,自定义通知的内容、触发时间和响应操作。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

AIPBKp2CgHFy