使用TwilioChatClient窗格,我已成功将我的应用注册到Twilio Programmable Chat以接收APN通知。
但是,据我所知,这些通知是在实例化的TwilioChatClient客户端上调用client.register(withToken: deviceToken)
之后创建的,而不是通过应用程序的AppDelegate didReceiveRemoteNotification
方法。更奇怪的是,didReceiveRemoteNotification
被调用,但仅当应用程序处于活动状态时,而不是后台状态,我想执行某些操作。
是否有人知道这些通知的创建地点和方式,或者只有在活动状态期间调用didReceiveRemoteNotification
的原因?除此之外,我想在客户发出的每个通知中增加应用程序图标徽章编号。
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
print("Registered for notifications");
if UserUtils.client?.userInfo != nil {
print("Has info");
UserUtils.deviceToken = deviceToken;
UserUtils.client?.register(withToken: deviceToken)
} else {
print("No info");
updatedPushToken = deviceToken as NSData?
}
}
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
print("Received a notification");
if UIApplication.shared.applicationState != .active {
print(userInfo);
UserUtils.client?.handleNotification(userInfo);
UIApplication.shared.applicationIconBadgeNumber += 1;
if UserUtils.client?.userInfo != nil {
print(userInfo);
let jsonNotification = JSON(userInfo["aps"])
let alert = jsonNotification["alert"].stringValue + "\"}";
print(JSON.init(parseJSON: alert)["body"]);
} else {
print(userInfo);
let jsonNotification = JSON(userInfo["aps"])
let alert = jsonNotification["alert"].stringValue + "\"}";
print(JSON.init(parseJSON: alert)["body"]);
}
} else {
}
}
client.register(withToken: deviceToken)
按预期工作。
答案 0 :(得分:0)
Twilio开发者传道者在这里。
我已经与可编程聊天团队进行了交谈,这是我发现的:
"content-available": 1
)。可编程聊天会向用户发送显示信息的通知,因此不会以后台模式触发关注这些新增内容的Programmable Chat Changelog。
让我知道这是否有帮助。