【发布时间】:2019-09-28 23:37:10
【问题描述】:
所以我在我的应用程序中实现了远程推送通知 (apn),这样我就可以将通知从服务器发送到客户端。
我的应用程序有点像 whatsapp 或电报这样的信使,所以我希望客户端能够回复通知。所以我实现了一个 NotificationService 扩展。
如果我按下通知,请在出现的文本字段中输入我的消息,然后单击回答按钮 (就像我们都知道我们最喜欢的 Messenger 应用程序一样) 我希望将消息发送到后面到我的服务器。
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
// on reply
if let url = URL(string: "myserver/send/text") {
let task = URLSession.shared.dataTask(with: url) {(data, response, error) in
if let serverResult = data as? String {
print("success")
}
}
task.resume()
}
}
此方法有时有效,但我注意到如果应用程序关闭或我的 iphone 被锁定,我会遇到一些问题:此代码无法获取 URL。
使用调试器,我在日志中发现了一些非常有趣的内容:软件导致连接中止。
我该如何解决这个问题?如果我实现套接字它会改变什么吗?为什么这对像电报/whatsapp 这样的客户有效,但对我无效?我到底做错了什么? :-(
【问题讨论】:
标签: ios swift iphone push-notification apple-push-notifications