SDK 初期化¶
本稿では、0.3.0 以降の Mobile SDK の初期化とランタイムの基本 API について説明します。
API オブジェクトの取得¶
通常の uni-app では UTS モジュールからインポートし、アプリケーションのエントリで最初に setup.js を一度ロードします。
import '@/uni_modules/GC-UniPlugin/setup.js';
import { mobileAgent } from '@/uni_modules/GC-UniPlugin';
uni ミニアプリでは、パブリックな JS レイヤーからインポートします。
uni ミニアプリの SDK はホストアプリによって初期化されるため、sdkConfig() を呼び出す必要はありません。本ページのその他のランタイム API は、ホストアプリの初期化完了後に呼び出すことができます。
基本設定¶
mobileAgent.sdkConfig({
datakitUrl: 'http://10.0.0.1:9529',
debug: true,
env: 'common',
globalContext: {
custom_key: 'custom value'
}
});
| パラメータ名 | パラメータ型 | 必須 | パラメータ説明 |
|---|---|---|---|
| datakitUrl | string | いいえ | ローカル環境にデプロイされた Datakit のレポート先 URL。例: http://10.0.0.1:9529。datawayUrl と二択です。初期化時は設定しなくてもよく、後で setDatakitURL で動的に設定できます。 |
| datawayUrl | string | いいえ | パブリックネットワーク DataWay のレポート先 URL。datakitUrl と二択です。初期化時は設定しなくてもよく、後で setDatawayURL で動的に設定できます。 |
| clientToken | string | datawayUrl を使用する場合必須 |
DataWay のアドレスと一致する認証トークン |
| debug | boolean | いいえ | Debug ログを出力するかどうか。デフォルトは false |
| env | string | いいえ | 環境名。デフォルトは prod。test のように単一単語での使用を推奨します。 |
| service | string | いいえ | 所属するビジネスまたはサービス名。デフォルト値はプラットフォーム SDK によって決まります。 |
| globalContext | object | いいえ | 初期化時に追加するグローバルタグ |
| offlinePackage | boolean | いいえ | Android のみ。通常の uni-app のオフラインパッケージ、または既存の 0.2.x uni ミニアプリプロジェクトでまだ JS 側で SDK を初期化している場合に true に設定します。デフォルトは false。詳細は Android クラウドパッケージとオフラインパッケージの違い を参照してください。 |
| autoSync | boolean | いいえ | データを自動同期するかどうか。デフォルトは true。無効にした場合は、flushSyncData を使用して手動で同期します。 |
| syncPageSize | number | いいえ | 1 回の同期で送信するデータの件数。[5,) の範囲。デフォルトは 10 |
| syncSleepTime | number | いいえ | 同期の間隔時間。[0,5000] の範囲。単位はミリ秒 |
| enableDataIntegerCompatible | boolean | いいえ | データの整数互換処理を有効にするかどうか。デフォルトは有効 |
| compressIntakeRequests | boolean | いいえ | 同期データを deflate 圧縮するかどうか。デフォルトは無効 |
| enableLimitWithDbSize | boolean | いいえ | DB 容量制限を有効にするかどうか。有効にすると logCacheLimitCount と rumCacheLimitCount は無効になります。 |
| dbCacheLimit | number | いいえ | DB キャッシュ制限。[30MB,) の範囲。デフォルトは 100MB。単位はバイト |
| dbDiscardStrategy | string | いいえ | DB データ破棄戦略。discard(デフォルト)または discardOldest |
| dataModifier | object | いいえ | 単一フィールドのマスキング修正。詳細は データ収集マスキング を参照してください。 |
| lineDataModifier | object | いいえ | 単一データ行のマスキング修正。詳細は データ収集マスキング を参照してください。 |
| remoteConfiguration | boolean | いいえ | リモート設定を有効にするかどうか。デフォルトは false。有効にすると、SDK 初期化時またはアプリのホットスタート時に設定の更新がトリガーされます。 |
| remoteConfigMiniUpdateInterval | number | いいえ | リモート設定の最小更新間隔。[0,) の範囲。単位は秒。デフォルトは 12 時間 |
| enableDataFilter | boolean | いいえ | DataKit と互換性のあるデータフィルタリングを有効にするかどうか。デフォルトは true |
| dataFilters | object | いいえ | ローカルデータフィルタリングルール。key は logging、rum をサポートし、value はルール文字列の配列です。 |
リモート設定とデータフィルタリング¶
mobileAgent.sdkConfig({
datakitUrl: 'http://10.0.0.1:9529',
remoteConfiguration: true,
remoteConfigMiniUpdateInterval: 600,
enableDataFilter: true,
dataFilters: {
logging: [
"{ message match [ 'password' ] }"
],
rum: [
"{ resource_status match [ '5..' ] }"
]
}
});
remoteConfigurationは、サンプリングレートなどの SDK 設定のリモート更新を有効にするために使用します。手動で更新をトリガーする必要がある場合は、updateRemoteConfigWithMiniUpdateIntervalを使用できます。dataFiltersは、アプリとともに配布されるローカルのブラックリストルールです。いずれかのルールに一致したデータは、ローカルキャッシュに書き込まれる前に破棄されます。- ローカルルールとリモートルールは両方とも有効です。ルールは
lineDataModifierの後に実行されるため、修正後のデータに基づいて判断されます。 - 各ルールは
{ 条件 }で表現されます。フィールドと値の形式については、ブラックリストフィルタリングルール を参照してください。
ユーザー情報のバインドとアンバインド¶
mobileAgent.bindRUMUserData({
userId: 'Test userId',
userName: 'Test name',
userEmail: 'test@example.com',
extra: {
age: '20'
}
});
mobileAgent.unbindRUMUserData();
API - bindRUMUserData¶
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| userId | string | はい | ユーザー ID |
| userName | string | いいえ | ユーザー名 |
| userEmail | string | いいえ | ユーザーメールアドレス |
| extra | object | いいえ | ユーザー追加情報 |
API - unbindRUMUserData¶
現在のユーザーをアンバインドします。
ランタイム機能¶
SDK のシャットダウン¶
SDK をシャットダウンした後、再度使用するには、完全な初期化をやり直す必要があります。uni ミニアプリは通常、ホストアプリが保持する SDK をシャットダウンすべきではありません。ただし、両者でライフサイクル管理方法を合意している場合はこの限りではありません。
SDK キャッシュデータのクリア¶
まだサーバーにアップロードされていないすべてのデータをクリアします。
手動データ同期¶
autoSync が true の場合は追加の操作は不要です。autoSync が false の場合は、このメソッドを呼び出してデータ同期をトリガーします。