Channel Developers

AndroidのWebView内でJavaScript SDKを使用するには、いくつかの追加ステップが必要です。

JavaScript SDKはプッシュ通知を提供していません。

プッシュ通知をサポートするには、JavaScript SDKの代わりにAndroid SDKを使用してください。ベストプラクティスに従うために、Android(SDK)セクションをご参照ください。

AndroidのWebViewで新しいタブを許可するには、いくつかの追加設定が必要です。

Kotlin

AndroidのWebViewを使用している場合、ユーザーがファイルを送信するために添付ボタンをクリックしても、ファイル選択画面を起動することができません。これは、WebViewがデフォルトのファイル選択動作を実装していないためであり、ユーザーのアクションをどのように処理するかを手動で定義する必要があります。弊社のシンプルなソリューションとスニペットを使用すれば、モバイルアプリケーションとJavaScript SDKの統合に最小限の労力しかかかりません。

モバイルデバイスで手間のかからないスムーズな体験を求めている場合は、Android SDKを使用することを強くおすすめします。

  1. WebViewがファイルにアクセスできるように許可し、ユーザーがファイル選択画面を開こうとしたときに通知を受け取れるよう、WebChromeClientを設定します。

Kotlin
  1. ファイル選択のコールバック処理を担当する WebViewAttachmentModule クラスのコードをコピーしてください。このスニペットは、コード作成を迅速化するために提供されているものであり、必要に応じて変更していただいて構いません。

onShowFileChooser から必ず true を返すようにしてください

onShowFileChooserfalse を返すと、WebChromeClientfilePathCallback の呼び出しを許可しません。このモジュールはファイル選択用のインテントが作成される際に必ずコールバックを呼び出すため、onShowFileChoosertrue を返す場合にのみ getIntentChooser を呼び出すようにしてください。

Kotlin

AndroidのWebViewは、写真やビデオなどのファイルのダウンロードをネイティブではサポートしていないことに注意してください。以下のコードは、URLリクエストをインターセプトし、それがチャネルトークからの画像やビデオであると識別された場合にファイルをダウンロードする方法を示しています。

  1. 画像やビデオのダウンロードを処理するリスナーの記述方法については、以下をご参照ください。

Kotlin
  1. 作成したリスナーをアクティビティに適用します。以下に例を示します。

Kotlin

以下のサンプルコードを、要件に合わせて変更してください。

Kotlin

WebViewにJavaScript SDKを埋め込む代わりに、WebViewと併用してAndroid SDKを使用することを選択する場合があります。その主な理由は、プッシュ通知を送信する必要がある場合です。Android SDKの使用方法とプッシュ通知の有効化について確認していきます。

重複するChannel SDK UIを非表示にする

JavaScript SDKとAndroid SDKを併用する場合、JavaScript SDKのBoot OptionhideChannelButtonOnBoothidePopup=true を設定し、チャネルボタンとポップアップを非表示にしてください。Android SDKとJavaScript SDKでChannel SDKのUIが重複する可能性があるためです。

Android SDKがWebViewの現在のURLを認識できるように、適切なデータを使用して setPage を呼び出してください。この情報により、イベントトラッキングやワークフローのターゲット設定がスムーズに動作します。

Kotlin

このセクションでは、モバイルウェブにインストールされたJavaScript SDKをiOSのWebView環境で使用する方法について説明します。

info.plistへの入力確認

開始する前に、「インストール後」の項目を参照し、使用する権限の説明をInfo.plistに記載しているか確認してください。

JavaScriptのみを使用している場合、プッシュ通知は機能しません。

プッシュ通知を使用するには、ChannelIO iOS SDKをご参照ください。

以下の例は、任意のWebView ViewControllerでYOUR_WEB_URLに設定されたURLのページを読み込む方法を示しています。

Swift

これらの要件は、上記ですでに説明されています。それぞれ #1、#2、#3 とマークされています。

allowsInlineMediaPlaybackは、HTML5ビデオをインラインで再生するか、フルスクリーンで再生するかを設定する構成オプションです。デフォルト値は false。そのため、SDK 内にビデオがある場合、自動的にフルスクリーンで再生されます。

これを修正するには、allowsInlineMediaPlaybackを true に変更する必要があります。

JavaScript SDKのすべてのリンクプロパティはtarget="_blank"です。そのため、新しいタブで開かれます。

しかし、WKWebView はtarget="_blank"を自動的に処理できないため、対処するためにこのコード例を追加する必要があります。この例では、リンクアクションがtarget="_blank"からのものである場合、アクションからリンクを取得し、その URL を WebView で読み込みます。

WKWebView は、写真やビデオなどのファイルのダウンロードをネイティブではサポートしていないことに注意してください。上記のコードは、URL リクエストをインターセプトし、それがファイル、画像、またはビデオ(特にチャネルトークからのもの)であると識別された場合にファイルをダウンロードする方法を示しています。