NowChatService クラス: Android

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:6分
  • NowChatService クラスは、NowChat アクティビティを起動し、エラー構成を設定できる関数を提供します。

    NowChatService - launchIntent(context:Context, themeColors:NowChatTheme):インテント

    NowChat アクティビティを開くために使用するインテントを起動します。通常、[ android.app.PendingIntent] の作成に使用されます。

    表 : 1. パラメーター
    名前 タイプ 説明
    context コンテキスト インテントをビルドするために使用されるコンテキスト。
    themeColors NowChatTheme オプション。NowChat UI で使用するテーマの色。

    デフォルト:デフォルトの色

    表 : 2. 返される内容
    タイプ Description (説明)
    インテント 関連する NowChat アクティビティを起動するために使用されるインテントとテーマの色。

    この例では、 launchIntent() メソッドを呼び出し、戻りアクティビティを処理する方法を示します。

    val intent = nowChatService.launchIntent(this) 
    val pendingIntent = PendingIntent.getActivity( 
        this, 
        REQUEST_CODE,
        intent,
        PendingIntent.FLAG_IMMUTABLE 
    ) 
    
    val notification = createNotification(title, message, pendingIntent)
    notificationManager.notify(push.notificationId, notification) 

    NowChatService - start(activity: Activity, themeColors: NowChatTheme = object : NowChatTheme{}, contextData: map<String, Any> = mapOf(), chatOptions: NowChatOptions? = null)

    指定された NowChat アクティビティを起動します。

    表 : 3. パラメーター
    名前 タイプ Description (説明)
    アクティビティ アクティビティ NowChat アクティビティを起動し、onActivityResult を介して NowChatExitCode を resultCode として受け取るために使用するアクティビティコンテキスト。
    themeColors NowChatTheme オプション。NowChat UI で使用するテーマの色。

    デフォルト:デフォルトの色

    コンテキストデータ Map<String、Any> オプション。チャットセッションに渡される追加のチャットコンテキスト変数。

    チャットコンテキスト変数の詳細については、「 Live agent chat context variables」を参照してください。

    チャットオプション NowChatOptions オプション。チャットセッションに適用するオプション。
    表 : 4. 返される内容
    タイプ 説明
    なし

    次のコード例は、この関数を呼び出す方法を示しています。

    suspend fun launchChat() { 
      val chatService = getNowChatService() 
      val chatTheme = object : NowChatTheme { 
        override val brand: NowUIAdaptiveColor 
        get() = NowUIAdaptiveColor(Color.BLUE) 
     
        override val textPrimary: NowUIAdaptiveColor 
        get() = NowUIAdaptiveColor(Color.BLACK) 
     
        // Override remaining theme colors 
     
      } 
      val contextData = mapOf("sys_id" to "123456789", "table" to "wm_task") 
     
      val chatOptions = NowChatOptions( 
        NowChatOptions.ClosePrompt( 
          header = null, 
          message = "Are you sure you want to leave?", 
          acceptButtonTitle = "Yes", 
          declineButtonTitle = "No" 
        ), 
        disabledFeatures = listOf(NowChatOptions.Feature.START_NEW_CONVERSATION), 
        forceNewConversation= true 
      )
     
       chatService?.start(activity, chatTheme, contextData, chatOptions) 
    } 

    NowChatService - subscribeToUnreadMessageCount(pollingInterval: Long, listener: NowChatUnreadMessagesCountListener)

    未読チャットメッセージ数リスナーに登録します。

    表 : 5. パラメーター
    名前 タイプ Description (説明)
    pollingInterval 未読チャットメッセージ数について Web サービスをポーリングする頻度。

    単位:ミリ秒

    リスナー NowChatUnreadMessagesCountListener 未読のチャットメッセージの数を取得するために実装するリスナー。また、 NowChatService - unsubscribeFromUnreadMessageCount(リスナー: NowChatUnreadMessagesCountListener) メソッドを使用して未読メッセージ数を取得する必要がなくなった場合は、このリスナーを登録解除する必要があります。
    表 : 6. 返される内容
    タイプ 説明
    なし

    次の例は、チャットの未読メッセージ数リスナーを登録および登録解除する方法を示しています。

    private val unreadMessageCountListener = object: NowChatUnreadMessagesCountListener {
      override fun unreadMessagesCountDidChange(unreadMessageCount: Int) {
      }
    }
    
    fun setup() {
      nowChatService.subscribeToUnreadMessageCount(pollingInterval:1000, unreadMessageCountListener)
    }
    
    fun teardown() {
      nowChatService.unsubscribeFromUnreadMessageCount(unreadMessageCountListener)
    }
    

    NowChatService - unsubscribeFromUnreadMessageCount(リスナー: NowChatUnreadMessagesCountListener)

    未読メッセージ数の受信を登録解除します。

    表 : 7. パラメーター
    名前 タイプ Description (説明)
    リスナー NowChatUnreadMessagesCountListener チャットの未読メッセージ数リスナーから登録解除するために実装するリスナー。
    表 : 8. 返される内容
    タイプ 説明
    なし

    次の例は、チャットの未読メッセージ数リスナーを登録および登録解除する方法を示しています。

    private val unreadMessageCountListener = object: NowChatUnreadMessagesCountListener {
      override fun unreadMessagesCountDidChange(unreadMessageCount: Int) {
      }
    }
    
    fun setup() {
      nowChatService.subscribeToUnreadMessageCount(pollingInterval:1000, unreadMessageCountListener)
    }
    
    fun teardown() {
      nowChatService.unsubscribeFromUnreadMessageCount(unreadMessageCountListener)
    }