アクションを配信する

🚧

このドキュメントは古いバージョンのReact Native SDKについて記載しています

Native SDK v1に依存する旧React Native SDKは 2021/05/11でサポート終了となります。

送信したイベントをトリガーにした接客サービスが配信されると、アクションが自動で表示されます。
ほとんどの場合、アプリにアクションを表示するための特別な知識や実装は不要です。

このページではアクション表示時のSDKの詳細な挙動を説明します。

アクション表示の仕組み

SDKはアプリ内にセットしたWebView上でアクションを表示することで、HTML、CSS、JavaScriptによる表現を可能にしています。
アクションが配信されたとき、WebViewを持つWindowがアプリ内に設置されます。
このWindowはアクションの表示が必要な時のみ設置され、アクティブなアクションがなくなった時に非表示になります。

リンク

ユーザーがアクション内にある a タグをクリックしたとき、SDKはリンクを開くためにシステムに処理を委譲します。
iOSの場合は UIApplication クラスの openURL: を自動的に呼び出し、Androidの場合は暗黙的インテントが startActivity() に渡されます。

なお独自に制御したい場合は、ネイティブコードで delegate を実装することで対応可能です。
詳細については、以下をご覧ください。

アクションのリセット

画面遷移に伴い表示中のアクションを閉じるため、SDKは次のタイミングでアクションをリセットします。

  • view イベントの送信
  • アクション内のリンクのクリック
  • KarteInAppMessagingManager オブジェクトの dismiss 関数の呼び出し

明示的なアクションのリセットについて

KarteInAppMessagingManager オブジェクトの dismiss 関数を呼び出すことで、明示的にアクションのリセットを行うことが可能です。

import { KarteInAppMessagingManager } from 'react-native-karte-tracker'

let isPresenting = await KarteInAppMessagingManager.isPresenting()
if (isPresenting) {
  KarteInAppMessagingManager.dismiss()
}

🚧

制限事項

この機能は React Native SDK v0.1.0 から対応しています。

アクションを表示する画面を限定する方法について

イベントを送信してから接客サービスのレスポンスを受信する前に、ユーザーが別の画面に遷移している場合があります。
この時にアクションを表示するかどうかを接客サービスのオプションでコントロールできます。
設定は、接客サービス詳細 > オプション の「ネイティブアプリにおける接客表示制限」より行えます。

特定の画面にのみアクションを表示したい場合はこのオプションをONにしてください。

📘

別の画面に遷移したと判定する条件

遷移後の画面で view イベントを送信したタイミングで、別画面に遷移したと認識します。
そのため、遷移後の画面で view イベントを送信していない場合は、このオプションを有効にしても機能しません。

アクションの表示を明示的に抑制する

KarteInAppMessagingManager オブジェクトの suppress 関数を呼び出すことで、明示的にアクションの表示を抑制することができます。表示の抑制を解除するには unsuppress 関数を呼び出します。

import { KarteInAppMessagingManager } from 'react-native-karte-tracker'

componentDidMount() {
  // アクションの表示抑制を解除します
  KarteInAppMessagingManager.unsuppress()
}
componentWillUnmount() {
  // アクションの表示を抑制します
  KarteInAppMessagingManager.suppress()
}

🚧

制限事項

この機能は React Native SDK v0.1.0 から対応しています。