当前位置: 首页 > 知识库问答 >
问题:

iOS Swift Twilio可编程聊天推送通知

彭胡媚
2023-03-14

但是,据我所知,这些通知是在实例化的TwilioChatClient客户机上调用client.register(withtoken:deviceToken)之后创建的,而不是通过应用程序的AppDelegatedidReceivereMoteNotification方法创建的。更奇怪的是,DidReceivereMoteNotification被调用,但仅当应用程序处于活动状态时,而不是后台状态,我希望在后台状态下执行一些操作。

是否有人知道这些通知是在哪里以及如何创建的,或者为什么didreceivereMoteNotifice只在活动状态期间调用?除其他外,我想增加应用程序图标徽章编号与每个通知发送由客户端。

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)按预期工作。

共有1个答案

裴金鑫
2023-03-14

这里是Twilio开发者的福音传道者。

我已经和可编程聊天团队谈过了,这是我发现的:

  • application(_:didreceivereMoteNotification:FetchCompletionHandler:)用于只执行后台处理的后台静默通知(即在APNS通知中设置“content-available”:1)。可编程聊天向用户发送显示信息的通知,因此不会在后台模式下触发
  • 但是通知可以为您更新徽章计数,所以这是您不必执行的处理,这需要在通知中设置一个我们当前不支持的不同设置,但是现在正在添加支持
  • 如果您既想显示通知又想做进一步的后台处理,常规通知不支持这一点,但iOS 10的服务扩展支持这一点。可编程聊天也不支持这些,但是,它正在被开发中,所以您可能很快就会看到
 类似资料:
  • 我没有收到接收消息的推送通知等,也不确定有什么其他杠杆可供我使用。如果团队中的任何人看到这条消息,我很想知道如何调试它。

  • 问题内容: 我正在做一个聊天应用程序。在应用程序中,我必须使用parand andorid sdk的推送通知进行聊天。我成功地在不同用户之间生成了推送通知。但无法接收推送并将其数据添加到列表视图中。这是最原始文件的代码 和我的自定义收件人的代码 从Java代码中,我像这样发送推: 请告诉我使用接收器接收数据的地方是错误的,当我接受推送意味着进一步前进的逻辑或想法时该怎么办。提前致谢 问题答案: 这

  • 我正在努力将Twilio可编程聊天集成到QT/QML应用程序中--这意味着我不能很容易地使用Javascript客户机SDK。我想有像打字指示符,令牌到期通知等功能,在我的客户机处理。 在示例中,客户端sdk直接启动到Twilio的WebSocket连接,并直接接收诸如令牌过期等事件。 Twilio似乎为Javascript、iOs和Android提供了许多SDK,这些SDK抽象了大多数特性(读取

  • 我正在开发一个使用firebase实时数据库的聊天应用程序。我能够交换消息,但我希望有一个消息警报通知新消息。发送通知使用firebase控制台是工作的,但现在我想自动化它没有firebase控制台。 安卓客户端之间的推送通知需要创建自己的app服务器吗?或者有没有另外一种方法来实现这一点,而不是创建一个服务器? 谢谢

  • Twilio布道者们好, 我们使用Twilio模块,可编程聊天,并使用Javascript客户端和Twilio.api,C#服务器API。 我们希望用户看到特定信道的信道和消息,但需要有条件地阻止他们发送消息。 我们可以禁用UI元素,但智能用户仍然能够访问Twilio客户端,并发送消息。