是否可以使用 Swift 或 JavaScript 获取在 iMessage 上给我发短信的人的姓名或电话号码?

问题描述 投票:0回答:1

我有兴趣制作一个 iOS 应用程序,每当有人给我发短信时,它就会提醒我每隔 x 小时回复一次。是否可以通过 iMessage 的通知或直接从 iMessage 获取该信息?我不想阅读消息的内容,因为我知道这是隐私问题,但是是否可以检索给我发短信的人并自动将该信息与我的应用程序同步?

我已研究过检索 iMessage 信息或通知信息。由于隐私限制,iMessage 内容似乎无法访问,但是否可以仅检索发短信给我的姓名或电话号码?看起来可能可以获得通知内容,因此这也可能是一个潜在的解决方案。

谢谢你

javascript ios swift iphone mobile
1个回答
0
投票

您可以创建通知服务扩展来处理传入的通知。此扩展可以在将通知传递给用户之前修改通知的内容。您可以使用它来检测传入消息并提取相关信息。

您可以提取通知的标题和正文等信息,其中可能包括发件人的姓名或号码,具体取决于通知的结构。

import UserNotifications

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate {
    func application(_ application: UIApplication, 
                     didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        let center = UNUserNotificationCenter.current()
        center.requestAuthorization(options: [.alert, .sound]) { granted, error in
        }
        center.delegate = self
        return true
    }
    
    // Handle incoming notifications
    func userNotificationCenter(_ center: UNUserNotificationCenter, 
                                willPresent notification: UNNotification, 
                                withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
        let userInfo = notification.request.content.userInfo
        
        if let senderName = userInfo["senderName"] as? String {
            // Process the sender's name
            print("Received a message from \(senderName)")
            // Trigger your reminder or logging logic here
        }
        
        completionHandler([.alert, .sound])
    }
}

但是您只能访问通知中包含的数据,其中可能并不总是包含发件人的姓名或电话号码。

因此,Apple 的快捷方式应用程序和 iOS 自动化可以帮助您在 iMessage 到达时创建自定义通知或提醒。您可以设置快捷方式,以便在收到新消息时向您的应用程序发送通知。

© www.soinside.com 2019 - 2024. All rights reserved.