目次
アプリ接客の導入
iOS版 アプリ接客は iOS 9.0 以降で動作します。アプリ接客を導入する手順を説明します。
SDK を初期化する
AppDelegate クラスで初期化を行います。
class AppDelegate: UIResponder, UIApplicationDelegate, UIAlertViewDelegate{
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
_ = BDashWebReceptionController.init()
return true
}
}
ポップアップ表示準備
ポップアップを表示するには BDashReport クラスに表示条件の情報を設定する必要があります。設定するパラメーターはb→dash 画面側と連動します。設定例のサンプルコードを紹介します。
let report: BDashReport = BDashReport(targets: [self.item.itemId],
trigger: "default",
view: "商品詳細画面",
preView: "商品一覧画面",
page: "ItemDetailViewController",
prePage: "ItemListViewController",
eventFunc: "viewDidLoad",
customProperty:
nil)
2021/2現在、trigger,preView,prePage,eventFuncはb→dash管理画面での設定項目がないため、利用することができません。詳細はカスタマーサクセス担当までお問い合わせください。
ポップアップ表示
ポップアップのインスタンス生成には、self.popup = BDashWebReceptionController.getInstance().newPopup() を利用し、表示を行うには self.popup.showMessage()を使います。ポップアップを表示するには「アプリ内コンテンツで表示する場合」と、「WebView コンテンツで表示させる場合」かで、呼び出すタイミングが異なります。
ポップアップ内のアクションイベントを受け取る
ポップアップコンテンツ内にある「ディープリンク」を、エンドユーザーがクリックした際のイベントを受け取ることができます。このとき利用する I/F は BDashWebReceptionのインスタンスを生成し設定します。
・WebView の場合は、イベント発生時に「url キー」が固定で渡されます。
・Internal の場合は、イベント発生時に「b→dash管理画面で設定したキー」が複数渡されます。
実装例のサンプルコードを紹介します。
self.wr.eventDelegate = { (type, param) in
guard let type = eventType(rawValue: type) else { return }
switch type {
case .EVENT_INTERNAL:
if let view = param["view"] as? String, let date = param["date"] as? String, let url = param["url"] as? String {
print("(view) (date) (url)")
}
case .EVENT_WEBVIEW:
if let url = param["url"] as? String
{ print("(url)") } } }
ポップアップを閉じる
アプリ接客の「ポップアップ右上」に設置している「クローズボタン」をエンドユーザーが押下することで閉じられます。またプログラム内で、画面遷移やライフサイクルイベントなどにより安全に閉じるための関数を用意しています。この処理を行うにはcloseMessage() を利用します。実装例のサンプルコードを紹介します。
override func viewWillDisappear(_ animated: Bool)
{ super.viewWillDisappear(animated) self.wr.closeMessage()
closeMessage() は「ポップアップが未表示(準備中)、表示中」に関わらず破棄状態にさせます。画面遷移を行うときは、親となるViewが変わるため必ずcloseMessage()を呼び出す必要があります。
トラッキングレポートを送る
アプリ接客では showMessage() でポップアップを表示する際に「トラッキングレポート」も送付しています。アプリ内シーンで「ポップアップ表示をさせたくない・できない」 タイミングで「トラッキングレポートのみを送る」には代わりに BDashWebReception.report() 関数を利用します。実装例のサンプルコードを紹介します。
let report: BDashReport = BDashReport(targets: [self.item.itemId],
trigger: "default",
view: "商品詳細画面",
preView: "商品一覧画面",
page: "ItemDetailViewController",
prePage: "ItemListViewController",
eventFunc: "viewDidLoad",
customProperty: nil)
_ = BDashWebReception.report(obj:
report)
report() 関数では先に記載したcloseMessage()の影響は受けずに成果を送ります。なお通信エラーが発生した場合は、Tracker クラスと異なり 「リトライ処理は行われない」のでご注意ください。
ポップアップをユーザーごとにカスタマイズする
ポップアップのユーザーごとのカスタマイズは導入SDKバージョン 2.6.0以降で実装可能です。ポップアップを表示する際に、利用ユーザーごとにカスタマイズすること(異なるポップアップを出す等)ができます。実装例のサンプルコードを紹介します。赤文字の個所をセットすることで、SDK 側の設定は完了となります。
var popup: BDashWebReception = BDashWebReceptionController.getInstance().newPopup()
var customProperty: [String: String] = [BDashReport.CUSTOM_LOGIN_USER:""]
customProperty.updateValue(
"ログインユーザーID",
forKey: BDashReport.CUSTOM_LOGIN_USER
)
let report: BDashReport = BDashReport(
targets: ["省略"],
trigger: "default",
view: "商品詳細画面",
preView: "商品一覧画面",
page: "ItemDetailViewController",
prePage: "ItemListViewController",
eventFunc: "viewDidLoad",
customProperty: customProperty
)
_ = self.popup.showMessage(report: report, onView: view)