コンテンツにスキップ

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 レイヤーからインポートします。

import { mobileAgent } from '@/uni_modules/GC-JSPlugin';

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 のシャットダウン

mobileAgent.shutDown();

SDK をシャットダウンした後、再度使用するには、完全な初期化をやり直す必要があります。uni ミニアプリは通常、ホストアプリが保持する SDK をシャットダウンすべきではありません。ただし、両者でライフサイクル管理方法を合意している場合はこの限りではありません。

SDK キャッシュデータのクリア

mobileAgent.clearAllData();

まだサーバーにアップロードされていないすべてのデータをクリアします。

手動データ同期

mobileAgent.flushSyncData();

autoSync が true の場合は追加の操作は不要です。autoSync が false の場合は、このメソッドを呼び出してデータ同期をトリガーします。

フィードバック

このページは役に立ちましたか?