gpt4 book ai didi

ios - 快速回复 : NSURLSessionDataTask from "userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:"

转载 作者:行者123 更新时间:2023-11-29 11:40:32 25 4
gpt4 key购买 nike

我已成功为我的消息传递应用程序设置了远程通知,并希望合并 iOS 的“快速回复”功能,现在更广为人知的是 UNUserNotificationCenterUNTextInputNotificationAction

我将文本输入操作添加到我的传入消息通知中,它按预期工作。

我的问题在于 UNUserNotificationCenterDelegate 函数 userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:

无论我如何将 NSURLSessionDataTask 设置为 POST UNTextInputNotificationResponse 的输入响应 userText,请求总是超时。当我在应用程序处于前台时“快速回复”收到的通知时,它确实工作正常。

- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)(void))completionHandler {

if ([response isKindOfClass:UNTextInputNotificationResponse.class]) {

if ([response.actionIdentifier isEqualToString:@"REPLY_MESSAGE"]) {

[ApiManager chatWithId:@"123456789abcdefg" postTextMessage:[(UNTextInputNotificationResponse *)response userText] completion:^(Message *message) {

if (!message) {

NSLog(@"Sending failed");

}

completionHandler();
}];
}
}

}

ApiManager 中的数据任务构建在 [NSURLSession sharedSession] 之上 - 请注意,即使将其更改为 backgroundSessionConfigurationWithIdentifier 之后,这也不起作用: 并实现所需的委托(delegate)方法。

通过控制台可以看到“发送失败”的日志,如果我检查DataTask的错误,它显示“超时”错误。

我怀疑我的背景网络有问题,但我无法全神贯注,而且我到处都找不到答案。这里的文档也非常稀少。

最佳答案

对于将来遇到此问题的任何人:我能够通过将 content-available:1 添加到我的推送通知负载来解决它。我仍然在这里使用数据任务和共享 url session 。对于任何感兴趣的人,也没有委托(delegate),使用完成 block 。

我最初认为这行不通,添加内容可用标志实际上还有另一个原因,所以很高兴这解决了我最初遇到的问题。为什么我认为这行不通?很简单,因为如果我们相信文档,可用的内容会向应用程序表明有可供下载的内容。针对这种情况,有一个特殊的应用程序委托(delegate)方法被调用:

应用程序(_:didReceiveRemoteNotification:fetchCompletionHandler:)

响应用户通知操作的方法也有更多的时间来处理,这是一个很好的副作用。

额外好处:我还发现,如果不添加内容可用标志,快速回复将在 Apple Watch 上运行,因为我猜,操作系统允许应用程序在响应请求时执行更长的后台操作来自 Apple Watch。

关于ios - 快速回复 : NSURLSessionDataTask from "userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46893357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com