Zendesk Messaging SDK multi-conversations unable to open existing chats



Publication le 21 nov. 2024

We were trying to configure Zendesk Messaging in our React Native App for which we used the Zendesk SDK and a wrapper for React Native. Initialisation of the Zendesk SDK works as well as logging in the user with a token signed with the specified secret. When opening the Messaging View, an initial chat can be started if there is no previous chat. When opening the Message View again though the user is presented with a list of available chats. Here we face  the issue that if multi-conversations are enabled, tapping on an existing chat has no effect rendering the user unable to open it
Please see the screenshots attached.

 

Further information:
 

- Zendesk (3.4.0):
    - ZendeskSDKConversationKit (~> 8.0.0)
    - ZendeskSDKCoreUtilities (~> 3.0.0)
  - ZendeskSDKConversationKit (8.0.0):
    - ZendeskSDKCoreUtilities (~> 3.0.0)
    - ZendeskSDKFayeClient (~> 1.9.0)
    - ZendeskSDKHTTPClient (~> 0.16.1)
    - ZendeskSDKStorage (~> 1.1.0)
  - ZendeskSDKCoreUtilities (3.0.0)
  - ZendeskSDKFayeClient (1.9.0):
    - ZendeskSDKLogger (~> 0.10.0)
    - ZendeskSDKSocketClient (~> 1.8.0)
  - ZendeskSDKGuideKit (1.2.0):
    - ZendeskSDKCoreUtilities (~> 3.0.0)
    - ZendeskSDKHTTPClient (~> 0.16.1)
    - ZendeskSDKLogger (~> 0.10.0)
    - ZendeskSDKStorage (~> 1.1.0)
  - ZendeskSDKHTTPClient (0.16.1):
    - ZendeskSDKLogger (~> 0.10.0)
  - ZendeskSDKLogger (0.10.0)
  - ZendeskSDKMessaging (2.26.0):
    - Zendesk (~> 3.4.0)
    - ZendeskSDKConversationKit (~> 8.0.0)
    - ZendeskSDKCoreUtilities (~> 3.0.0)
    - ZendeskSDKGuideKit (~> 1.2.0)
    - ZendeskSDKUIComponents (~> 10.0.0)
  - ZendeskSDKSocketClient (1.8.0):
    - ZendeskSDKLogger (~> 0.10.0)
  - ZendeskSDKStorage (1.1.0):
    - ZendeskSDKLogger (~> 0.10.0)
  - ZendeskSDKUIComponents (10.0.0):
    - ZendeskSDKCoreUtilities (~> 3.0.0)

How we open the Message View:
 

@objc(openMessagingView:rejecter:)
  func openMessagingView(
    resolver resolve: @escaping RCTPromiseResolveBlock,
    rejecter reject: @escaping RCTPromiseRejectBlock
  ) -> Void {
    if !initialized {
      reject(nil, "Zendesk instance not initialized", nil)
      return
    }

    DispatchQueue.main.async {
      guard let viewController = ZendeskNativeModule.shared.getMessagingViewController(),
            let rootController = RCTPresentedViewController() else {
        reject(nil, "cannot open messaging view", nil)
        return
      }
      rootController.show(viewController, sender: self)
      resolve(nil)
    }
  }

0

4

0 commentaire

Vous connecter pour laisser un commentaire.

Vous ne trouvez pas ce que vous cherchez ?

Nouvelle publication