Skip to main content
Android と iOS の SDK は、Live Chat チャネルのチャット画面をそのままアプリの中に表示します。どちらも WebView の薄いラッパーで、依存ライブラリを持たず、受け取るパラメータは 3 つだけです。残りはすべて Console の設定から来ます。
SDK は Web ウィジェットと設定を共有します。先に Live Chat チャネル に従って Web ウィジェットのチャネルを設定し、設定タブから connectionKey を取得してください。

初期化の 3 つのパラメータ

appOrigin は /chat-widget のパスを必ず残してください。ルートドメインだけを渡すと、WebView はルートにあるアプリを読み込んでしまい、チャット画面が真っ白になります。
ウェブサイトと違い、モバイル SDK は Console の 既定の言語 を読みません。locale を空にすると、チャット画面は常にベトナム語になります。端末の言語を locale に渡して、顧客が使っている言語に合わせてください。

動作要件

SDK パッケージの入手

SDK は公開リポジトリではなく、インストール用のパッケージとしてお渡しします。プラットフォームごとに 1 つ、合計 2 つのアーカイブを受け取るので、使うほうだけを取り出してください。

fpt-agent-chat-1.0.0-android.zip

展開し、中の android/maven フォルダをプロジェクトにコピーします。たとえば libs/fpt-agent-chat/maven へ。隣の android/chat-1.0.0.aar は単体のビルドで、Maven リポジトリを追加できないプロジェクト向けです。

fpt-agent-chat-1.0.0-ios.zip

展開し、ios/FptAgentChat.xcframework をターゲットにドラッグします。
macOS では Finder か unzip コマンドで展開し、展開したフォルダを再度 zip に固め直さないでください。.xcframework はバンドルなので、別のツールで固め直すと中のリンクが壊れ、Xcode が読み解きにくいエラーを出します。
各アーカイブには、そのプラットフォームの手順を並べた README.md が同梱されています。

ライブラリの宣言 - Android

ライブラリの宣言 - iOS

ios/FptAgentChat.xcframework をターゲットにドラッグし、Frameworks, Libraries, and Embedded Content に Embed & Sign で並んでいることを確かめます。

Android

チャット画面を全画面で開く

既存の画面にチャットを埋め込む

FptChatView を自分で配置するときに必要なこと

FptChatActivity はファイル選択をすでに配線済みです。自分の画面に FptChatView を置く場合は、自分で配線する必要があります。配線しないと添付ボタンを押しても何も起きず、コールバックが宙に浮いたままになるので、2 回目も反応しません。
FptChatView を載せる Activity には、AndroidManifest.xml で android:windowSoftInputMode="adjustResize" も必要です。これがないとキーボードが入力欄を覆います。FptChatActivity にはすでに付いています。

戻るボタンを処理する

ライフサイクル

3 つのライフサイクルメソッドをすべて呼んでください。release() を飛ばすと、画面を閉じたあとも WebView が生き残り、メモリリークになります。

iOS

必須: Info.plist の 2 つのキー

チャット画面では顧客が添付を送れ、chat.allow_attachments は既定でオンなので、これは例外ではなく通常の経路です。Info.plist に NSPhotoLibraryUsageDescription か NSCameraUsageDescription が欠けていると、顧客が添付ボタンを押した瞬間に OS が アプリを終了 させます。エラー表示ではなく終了です。顧客が読んで分かる文言で、両方とも宣言してください。

チャット画面を全画面で開く

既存の画面にチャットを埋め込む

外部リンクを開く

WebView の中で戻る

覚えておくこと

設定は Console にあります

配色、あいさつ、質問の候補、添付の可否は、すべてウィジェットのカスタマイズタブから来ます。Console で変えればアプリにもすぐ反映され、再リリースは要りません。

言語は渡す必要があります

ウェブとの唯一の違いです。端末のシステム言語を読んで locale に渡してください。

1 つのチャネルで複数の接点

ウェブサイトとモバイルアプリは 1 つの connectionKey を共有するので、会話も設定も同じものになります。

チャネルを作り直すとキーも変わります

ウェブサイトのチャネルを削除して作り直すと、新しい connectionKey が発行されます。配布済みのアプリは更新が必要です。

リリース前チェックリスト

  • Console で Web ウィジェットのチャネルを設定し、少なくとも一度保存した。
  • appOrigin を Console から取得し、/chat-widget のパスが残っている。
  • connectionKey が、使いたい Agent のチャネルのものと一致している。
  • 端末の locale を渡している。SDK は Console の既定言語を読まないため。
  • iOS: Info.plist に NSPhotoLibraryUsageDescription と NSCameraUsageDescription がある。ないと、顧客が添付ボタンを押した瞬間にアプリが終了します。
  • Android で FptChatView を自分で配置した場合: fileChooserHandler と onActivityResult を配線し、Activity に windowSoftInputMode="adjustResize" を設定した。
  • 開く、閉じる、戻るを何度か繰り返し、ライフサイクルの処理を確認した。
  • 回線の弱い環境で試し、読み込み中の表示とエラーメッセージが意味の通るものか確認した。
添付のサイズ上限、許可される形式、共通のエラーコードは 技術付録 にあります。