SDK 初期化¶
本ドキュメントでは、Flutter SDK の初期化とランタイム機能に関する内容を説明します。
基本設定¶
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// ローカル環境(Datakit)へのデプロイ
await FTMobileFlutter.sdkConfig(
datakitUrl: datakitUrl,
);
// パブリック DataWay の使用
await FTMobileFlutter.sdkConfig(
datawayUrl: datawayUrl,
cliToken: cliToken,
);
}
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| datakitUrl | String | はい | ローカル環境(Datakit)へのデータ送信 URL。例:http://10.0.0.1:9529、デフォルトポートは 9529。SDK をインストールしたデバイスからこのアドレスにアクセスできる必要があります。注意:datakitUrl と datawayUrl はどちらか一方のみを設定してください |
| datawayUrl | String | はい | パブリック DataWay へのデータ送信 URL。[ユーザーアクセス監視(RUM)] アプリケーションから取得します。例:https://open.dataway.url。SDK をインストールしたデバイスからこのアドレスにアクセスできる必要があります。注意:datakitUrl と datawayUrl はどちらか一方のみを設定してください |
| cliToken | String | はい | 認証トークン。datawayUrl と同時に設定する必要があります |
| debug | bool | いいえ | ログの出力を許可するかどうか。デフォルトは false |
| env | String | いいえ | 環境設定。デフォルトは prod。任意の文字列ですが、test のような単一の単語を推奨します |
| envType | enum EnvType | いいえ | 環境設定。デフォルトは EnvType.prod。注意:env と envType はどちらか一方のみを設定してください |
| autoSync | bool | いいえ | データ収集後に自動的にサーバーへ同期するかどうか。デフォルトは true。false の場合は FTMobileFlutter.flushSyncData() を使用してデータ同期を管理します |
| syncPageSize | enum | いいえ | 同期リクエストあたりの項目数を設定します。SyncPageSize.mini:5 件、SyncPageSize.medium:10 件、SyncPageSize.large:50 件。デフォルトは SyncPageSize.medium |
| customSyncPageSize | number | いいえ | 同期リクエストあたりの項目数を設定します。範囲は [5, )。項目数が多いほど、データ同期により多くの計算リソースを消費します |
| syncSleepTime | number | いいえ | 同期の間隔を設定します。範囲は [0,5000]、デフォルトは設定なし |
| globalContext | object | いいえ | カスタムタグを追加します。追加ルールは フィールド競合の説明 を参照してください |
| serviceName | String | いいえ | サービス名 |
| customHttpOverrides | HttpOverrides | いいえ | カスタム HTTP Overrides。HTTP 自動収集を有効にする場合、プロジェクトで既に HttpOverrides.global をカスタマイズしている場合は、このパラメータでカスタム実装を渡すことができ、SDK は収集チェーン内でその実装を再利用します |
| enableLimitWithDbSize | boolean | いいえ | DB を使用したデータサイズ制限を有効にするかどうか。デフォルトは 100MB、単位はバイト、デフォルトは無効。有効にすると logCacheLimitCount と rumCacheLimitCount は無効になります。SDK 0.5.3-pre.2 以降でサポート |
| dbCacheLimit | number | いいえ | DB キャッシュ制限サイズ。範囲は [30MB, )、デフォルトは 100MB、単位はバイト。SDK 0.5.3-pre.2 以降でサポート |
| dbCacheDiscard | string | いいえ | DB 内のデータ破棄ルールを設定します。FTDBCacheDiscard.discard:新しいデータを破棄(デフォルト)、FTDBCacheDiscard.discardOldest:古いデータを破棄。SDK 0.5.3-pre.2 以降でサポート |
| enableLimitWithCacheSize | boolean | いいえ | キャッシュサイズを使用したデータサイズ制限を有効にするかどうか。Android ではキャッシュの総サイズ制限を使用します。iOS では DB キャッシュサイズ制限にマッピングされます。有効にすると cacheLimit が優先され、設定されていない場合は dbCacheLimit が互換用に使用されます |
| cacheLimit | number | いいえ | キャッシュ制限サイズ、単位はバイト。Android ではキャッシュの総サイズに対応。iOS では DB キャッシュ制限に対応 |
| cacheDiscard | enum FTCacheDiscard | いいえ | キャッシュデータの破棄ルールを設定します。Android ではキャッシュ破棄ポリシーを使用。iOS では DB データ破棄ルールにマッピングされます。FTCacheDiscard.discard:新しいデータを破棄(デフォルト)、FTCacheDiscard.discardOldest:古いデータを破棄 |
| enableFileDataStore | boolean | いいえ | Android:FileStore ファイルキャッシュを有効にするかどうか |
| needTransformOldCache | boolean | いいえ | Android:FileStore を有効にする際に、古い SQLite キャッシュデータを移行するかどうか |
| fileDataStoreShadow | boolean | いいえ | Android:SQLite 読み取りパスを使用する際に、同時に FileStore へ書き込むかどうか |
| compressIntakeRequests | boolean | いいえ | アップロード同期データを deflate 圧縮するかどうか。SDK 0.5.3-pre.2 以降でサポート、デフォルトは無効 |
| enableDataIntegerCompatible | boolean | いいえ | Web データと共存する場合に有効にすることを推奨します。Web データ型のストレージ互換性の問題を処理するために使用します。0.5.4-pre.1 以降はデフォルトで有効 |
| dataModifier | Map |
いいえ | 単一フィールドを変更します。使用例は データ収集のマスキング を参照してください |
| lineDataModifier | Map |
いいえ | 単一データ行を変更します。使用例は データ収集のマスキング を参照してください |
| enableDataFilter | boolean | いいえ | SDK 側の DataKit 互換フィルタリングルールを有効にするかどうか。デフォルトはネイティブ SDK の設定に従います |
| dataFilters | Map |
いいえ | ローカルの DataKit 互換フィルタリングルール。データタイプでグループ化され、現在は logging と rum をサポート |
| enableRemoteConfiguration | boolean | いいえ | リモート設定を有効にするかどうか。有効にすると、SDK は設定された間隔でリモート設定を取得し、現在のランタイムに適用します |
| remoteConfigMiniUpdateInterval | number | いいえ | リモート設定の最小更新間隔。enableRemoteConfiguration と併用する必要があります |
| remoteConfigOverrideRules | List | いいえ | リモート設定のローカル上書きルール。デバッグや特定のシナリオでリモート設定結果を上書きするために使用します |
| iOSGroupIdentifiers | List |
いいえ | iOS App Group 識別子のリスト。Extension とメインアプリ間でキャッシュデータを共有するために使用します |
ユーザー情報のバインドとバインド解除¶
使用方法¶
/// ユーザーをバインド
///
/// [userid] ユーザー ID
/// [userName] ユーザー名
/// [userEmail] ユーザーのメールアドレス
/// [userExt] 拡張データ
static Future<void> bindRUMUserData(String userId,
{String? userName, String? userEmail, Map<String, String>? ext})
/// ユーザーのバインドを解除
static Future<void> unbindRUMUserData()
コード例¶
ext の追加ルールは フィールド競合の説明 を参照してください。
ランタイム機能¶
データの手動同期¶
autoSync: falseの場合のみ、自身でデータ同期を実行する必要があります。