首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MacCatalyst版本上未接收到CKQueryNotification

MacCatalyst版本上未接收到CKQueryNotification
EN

Stack Overflow用户
提问于 2020-08-15 08:52:46
回答 2查看 101关注 0票数 1

我的应用程序通常在iOS或iPadOS上接收来自CKQuerySubscriptionCKQueryNotification,但使用具有相同捆绑包ID的MacCatalyst (从Xcode11.6生成),即使这样,它也不会接收CKQueryNotification

代码语言:javascript
复制
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)

在应用程序启动时正确调用-每当CloudKit上有记录更改时,方法

代码语言:javascript
复制
func application(_ application: UIApplication,
                 didReceiveRemoteNotification userInfo: [AnyHashable : Any],
                 fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Swift.Void)

不会在MacCatalyst版本上触发,而会在iOS上立即触发。

你知道为什么吗?在苹果论坛上有一个帖子,但还没有看到解决方案:https://developer.apple.com/forums/thread/125069

EN

回答 2

Stack Overflow用户

发布于 2020-09-08 04:11:15

对于在开发应用程序时遇到此问题的任何人,我决定无论如何都要发布应用程序,并发现在app Store版本中,在Mac上,catalyst应用程序几乎可以立即收到通知。因此,这似乎是CloudKit的调试环境错误。

票数 1
EN

Stack Overflow用户

发布于 2020-08-15 15:27:04

您共享的代码不足以让我们帮助您,所以我来猜猜。尝试按如下方式定义您的notificationInfo值,看看是否会有所不同。didRegisterForRemoteNotifications内部:

代码语言:javascript
复制
    // This is your subscription object
    let subscription = CKQuerySubscription(recordType: "Subscription", predicate: NSPredicate(format: "TRUEPREDICATE"), options: [.firesOnRecordCreation, .firesOnRecordUpdate])
    
    // Here we customize the notification message
    let info = CKSubscription.NotificationInfo()

    info.shouldSendContentAvailable = true
    info.desiredKeys = ["identifier", "title", "date"]
    info.soundName = ""
    info.alertBody = ""
    info.title = ""
    info.alertActionLocalizationKey = ""

    // Assign the notification info to your subscription
    subscription.notificationInfo = info
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63421613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档