RemoteCommands モジュール
Tealium iQタグ管理のイベントからネイティブコードブロックをトリガーすることを可能にし、拡張機能とロードルールによって制御します。
詳細を学ぶ リモートコマンドについて。
要件
- Tealium iQタグ管理モジュール。コンパイル時の依存関係ではありませんが、リモートコマンドはこのモジュールからトリガーされます。
サポートされているプラットフォーム
- iOS
インストール
CocoaPodsまたはCarthageを使用してRemoteCommandsモジュールをインストールします。
CocoaPods
CocoaPodsを使用してRemoteCommandsモジュールをインストールするには、以下のpodをPodfileに追加します:
pod 'tealium-swift/TealiumRemoteCommands'
フレームワークは自動的にインスタンス化されます。TealiumCore
podに依存しています。詳細を学ぶ iOSのCocoaPodsインストールについて。
Carthage
Carthageを使用してRemoteCommandsモジュールをインストールするには、以下の手順に従います:
-
Xcodeでアプリターゲットの一般構成ページに移動します。
-
次のフレームワークをEmbedded Binariesセクションに追加します:
TealiumRemoteCommands.framework
-
RemoteCommands APIと対話する必要がある場合は、プロジェクトに次の必要なインポートステートメントを追加します:
import TealiumRemoteCommands
フレームワークは自動的にインスタンス化されます。TealiumCore
に依存しています。追加のインポートステートメントは必要ありません。詳細を学ぶ iOSのCarthageインストールについて。
例
リモートコマンドタグがTealium IQで構成され、モジュールがアプリにインストールされていると、次の例に示すように初期化に次の行を追加します:
class TealiumHelper {
var tealium: Tealium?
// ...
private func initTealium() {
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT",
datasource: "DATASOURCE")
guard let remoteCommands = self?.tealium?.remoteCommands() else {
return
}
let brazeCommand = BrazeCommand(brazeTracker: BrazeTracker())
let brazeRemoteCommand = brazeCommand.remoteCommand()
remoteCommands.add(brazeRemoteCommand)
// ...
}
}
データレイヤー
このモジュールによって追加の変数は導入されません。
APIリファレンス
init()
新しいリモートコマンドオブジェクトを作成し、add
コマンドに渡す準備をします。
パラメータ | 説明 | 例 |
---|---|---|
commandId |
リモートコマンドの必須の文字列識別子 | "logger" |
description |
リモートコマンドのオプションの文字列説明 | "Log Response object to console" |
queue |
コードブロックをトリガーするキュー | DispatchQueue.main |
completion |
トリガーするコードブロック |
以下は使用例です:
let customCommand = TealiumRemoteCommand(commandId: "logger",
description: "Log Response object to console",
queue: DispatchQueue.main)
{ (response) in
// code to execute
print("Custom command response: (response)")
})
add()
バージョン1.6.5以降、TealiumConfig
のaddRemoteCommand()
メソッドを使用してリモートコマンドを追加することを推奨します
指定されたリモートコマンドをTealiumに登録し、後でトリガーするようにします。新しいリモートコマンドを追加する前にTealiumが初期化されている必要があります。
add(remoteCommand: TealiumRemoteCommand)
以下は使用例です:
var tealium: Tealium?
let customCommand = TealiumRemoteCommand(commandId: "logger",
description: nil,
queue: DispatchQueue.main)
{ response in
// code to execute
print("Custom command response: (response)")
})
if let remoteCommands = self.tealium?.remoteCommands() {
remoteCommands.add(customCommand)
} else {
print("Remote commands not available")
}
remove()
以前に登録されたリモートコマンドを削除し、再度トリガーされるのを防ぎます。
remove(commandWithId: String)
// assumes "tealium" previously instantiated
tealium?.remoteCommands()?.remove(commandWithId: "logger")
disableRemoteCommands()
リモートコマンドモジュールを無効にします。
disableRemoteCommands()
以下は使用例です:
// assumes "tealium" previously instantiated
tealium?.remoteCommands()?.disableRemoteCommands()
enableRemoteCommands()
リモートコマンドモジュールを有効にします(以前に無効化されていた場合のみ必要です。デフォルトは有効です)。
enabledRemoteCommands()
以下は使用例です:
// assumes "tealium" previously instantiated
tealium?.remoteCommands()?.enableRemoteCommands()
disableRemoteHTTPCommand()
組み込みのリモートHTTPコマンドを無効にしますが、他のコマンドのためにリモートコマンドモジュールは有効になったままです。
disableRemoteHTTPCommand()
以下は使用例です:
// assumes "tealium" previously instantiated
tealium?.remoteCommands()?.disableRemoteHTTPCommand()
enableRemoteHTTPCommand()
組み込みのリモートHTTPコマンドを有効にします(以前に無効化されていた場合のみ必要です。デフォルトは有効です)。
enableRemoteHTTPCommand()`
以下は使用例です:
// assumes "tealium" previously instantiated
tealium?.remoteCommands()?.enableRemoteHTTPCommand()
リモートHTTPコマンド
これは、_http
という識別子を持つ予約された内部コマンドで、ネイティブコードからHTTPリクエストをトリガーし、レスポンスをTealium iQウェブビューに戻します。これは、ウェブブラウザで遭遇する可能性のあるCORS制限を回避するために、場合によっては使用されます。このコマンドを使用するには、特定のマッピング名を使用する必要があります:
マッピング名 | 説明 |
---|---|
url |
(必須) トリガーしたいリクエストのURL。 |
method |
(必須) 呼び出したいHTTPメソッド。現在、PUT、GET、POSTのみがサポートされています。 |
headers |
(オプション) リクエストと一緒に渡すヘッダーのキー-値ペアを含むJavaScriptオブジェクト(JSON)。例えば、{"Content-Type": "application/json"} )。 |
callback_function |
(オプション) コマンドが完了したときに呼び出されるJavaScript関数。コールバック関数には2つのパラメータが渡されます: code は404や200などのHTTPレスポンスコードで、body はリクエストからのレスポンスボディです。 |
以下はサンプルのコールバック関数です:
var my_callback = function(code, body) {
// assuming the response body was a JSON object, this logs a variable called my_response_variable to the console in the web view
console.log(body.my_response_variable);
}
最終更新日 :: 2024年March月29日