Quick Tracking Statistics SDK Flutter プラグイン統合の説明
Flutter プラグインを統合する
環境の準備
qt_common_sdk: ^2.1.0
| --- ネイティブ iOS 1.5.8.PX バージョンに依存
| --- ネイティブ Android 1.6.3.PX バージョンに依存
SDK を手動で統合する
プロジェクト git ライブラリ flutter-ananlytics-plugin をダウンロードし、プロジェクトディレクトリを削除します。 git 隠しディレクトリ。
このプロジェクト ルートディレクトリ の下の android、ios、および lib フォルダと pubspec.yaml 構成ファイルを flutter プロジェクトにコピーします。
flutter プロジェクトの pubspec.yaml ファイルにプラグインの依存関係を追加します。
# ローカル依存関係
qt_common_sdk:
path: ../オンライン依存関係
pubspec.yaml ファイルに依存関係を追加します。
# オンライン依存関係
dependencies:
qt_common_sdk: ^2.1.0インバウンドルール をインポートする
import 'package:qt_common_sdk/qt_common_sdk.dart';プラグイン SDK の初期化
Android 用 ApsaraVideo MediaBox SDK を統合する
このプロジェクトのサンプル Android ホストプロジェクトの App.java ファイル(example/android/app/src/main/java/com/aliyun/qt_common_sdk_example/App.java)を参照して、flutter プロジェクトの Android ホストプロジェクトに App クラスを追加します。 このクラスは io.flutter.app.FlutterApplication クラスのサブクラスである必要があります。 App クラスの onCreate ライフサイクル 関数 で、ネイティブ統計 SDK の事前初期化メソッド QtConfigure.preInit を呼び出し、appkey パラメータと channel パラメータを渡します。

さらに、Android ホストプロジェクトの AndroidManifest.xml マニフェストファイル のアプリケーション構成に "android:name" 属性 を追加する必要があります。その値は新しく追加された App クラスです。 次の図に結果を示します。

事前初期化で渡される appkey パラメータと channel パラメータは、flutter プロジェクトの dart コードで呼び出される SDK 正式初期化 関数 QTCommonSdk.initCommon に渡される最初のパラメータ(Android appkey)と 3 番目のパラメータ(Android channel)と同じである必要があります。
プライバシーポリシーの要件を満たすために、開発者は、アプリケーションのインストール後の最初のコールドスタート シナリオ で、アプリケーションユーザーがプライバシー認証に同意した後にのみ、Flutter プラグインの QTCommonSdk.initCommon API を呼び出して SDK を初期化できることを確認する必要があります。
Flutter の最初のページを初期化するときに、QTCommonSdk.initCommon API を呼び出して SDK を初期化できます。
iOS 用 ApsaraVideo MediaBox SDK を統合する
1. コンプライアンスステートメント
SDK サービス を選択したことをユーザーに通知する必要があります。 プライバシーポリシーに次の条項を追加します。
「当社の製品統合 SDK、SDK は、統計分析 サービス を提供するためにデバイス識別コード(IDFA/IDFV/OPENUDID/GUID/)を収集し、地理的な位置情報を通じて レポート データの精度を調整して、基本的な不正防止機能を提供する必要があります。」
2. コンプライアンスの初期化
統計 SDK を統合した後にアプリが情報産業省(MIIT)のコンプライアンス要件を満たせるようにするには、アプリの最初のコールドスタート時に、ユーザーがプライバシーポリシーを読み、ユーザーの認証を取得した後に、初期初期化 関数 が呼び出されて統計 SDK が初期化されることを確認する必要があります。 この場合、SDK はデバイス情報を収集し、データを レポート します。 逆に、ユーザーがプライバシーポリシー認証に同意しない場合、初期化 関数 を呼び出すことはできません。
/**すべてのコンポーネント製品を初期化する
@ param appKey 開発者が申請した appkey。
@ param channel チャンネル識別子。 nil を「App Store」に設定できます。
*/
+ (void)initWithAppkey:(NSString *)appKey channel:(NSString *)channel;アプリが「プライバシーポリシー」のユーザー認証を取得したら、開発者は、後続のアプリのコールドスタートに対して初期化 関数 が呼び出されることを確認する必要があります。
プラグイン API の説明
各 API の以下のコメントには、API または パラメーター に「Android 特有」または「iOS 特有」のマークが付いています。 区別に注意してください。 指定されていない API または パラメーター は、Android と iOS の両方に共通です。
///
/// 統計ログを レポート するためのプライマリ ドメイン名 と代替 ドメイン名 を設定します。 この 関数 は、SDK が 関数 呼び出しを初期化する前に呼び出す必要があります。
///
/// @param primaryDomain String プライマリ ドメイン名。
/// @param standbyDomain String バックアップ ドメイン名 を使用してログをアップロードするためのバックアップ ドメイン名 の受信アドレス。 パラメーター は null または空の 文字列 にすることができます。 この パラメーター が空の場合、SDK はプライマリ ドメイン名 をバックアップ ドメイン名 として自動的に設定します。
///
///
static void setCustomDomain(String primaryDomain, String standbyDomain)
///
/// 初期化
///
/// @param androidAppkey String 開発者が申請した Android appkey。 Android 特有、入力
/// @param iosAppkey String 開発者が申請した ios appkey。 iOS 特有、入力
/// @param channel String チャンネル識別子。 nil を「App Store」に設定できます。
///
///
static Future<dynamic> initCommon(String androidAppkey, String iosAppkey, String channel)
///
/// カスタムアプリの バージョン番号。 デフォルト では、バージョン番号 が取得されます。 この パラメーター は 1 回だけ設定できます。 すべての API 呼び出しの前にアプリを呼び出すことをお勧めします。
///
/// @param appVersion String カスタム バージョン番号。
/// @param appVersionCode int Android アプリケーション の バージョン番号。 この パラメーター は Android 特有です。
///
static void setAppVersion (String appVersion, int appVersionCode)
///
/// コンソール に SDK の デバッグ ログを出力するかどうかを設定します。
///
/// @param bFlag bool フラッシュに設定(ログは出力されません)。 デバッグ リファレンス のログ情報を出力するには true に設定します。
/// デフォルト では、このスイッチは SDK でオフになっています。 アプリを正式に起動する前に、ログスイッチをオフにする必要があります。
///
///
static void setLogEnabled (bool bFlag)
///
/// カスタム イベント
///
/// @param event String イベント ID。
/// @param properties Map カスタム パラメーター。
///
static void onEvent(String event, Map<String,dynamic> properties)
///
/// @param event String イベント ID。
/// @param pageName String ページ名。
/// @param properties Map カスタム パラメーター。
///
static void onEventWithPage(String event,String pageName, Map<String,dynamic> properties)
///
/// アカウント統計 ログイン
///
/// @param userID String ユーザーの ID
///
///
static void onProfileSignIn(String userID)
///
/// アカウント統計ログアウト
///
///
static void onProfileSignOff ()
///
/// ページ統計:ページの表示が開始されたときに呼び出されます。
///
/// @param viewName String ページ名
///
///
static void onPageStart(String viewName)
///
/// ページ統計:ページが非表示になったときに呼び出されます
///
/// @param viewName String ページ名
///
///
static void onPageEnd(String viewName)
///
/// ページ プロパティ を設定します。
///
/// @param pageName String ページ名
/// @param properties Map カスタム パラメーター
///
static void setPageProperty(String pageName, Map<String,dynamic> properties)
///
/// グローバル 属性 を登録する
///
/// @param properties Map カスタム パラメーター
///
///
static void registerGlobalProperties(Map<String,dynamic> properties)
///
/// グローバル 属性 を削除します。
///
/// @param propertyName String カスタム パラメーター キー。
///
///
static void unregisterGlobalProperty(String propertyName)
///
/// グローバル 属性 を取得します。
///
///
static Future<String>? get getGlobalProperties async
///
/// グローバル 属性値 を取得します。
///
///
static Future<dynamic>? getGlobalProperty(String propertyName) async
///
/// グローバル 属性 をクリアする
///
static void clearGlobalProperties()
///
/// 現在のページ統計をスキップします。
///
/// @param pageName String ページ名
///
///
static void skipMe(String pageName)
///
/// ページ プロパティ を設定します。
///
/// @param pageName String ページ名
/// @param properties Map カスタム パラメーター
///
static void setPageProperty(String pageName, Map<String,dynamic> properties)
//
// QT JS SDK は flutter_webview_plugin プラグインを使用して、JS レイヤー統計を flutter レイヤー JavascriptChannel API に送信します。
// この 操作 を呼び出します。 サンプルコードの詳細は、example/lib/main.dart の 15 ~ 23 行目をご参照ください。
//
static void onJSCall(String msg)
///
/// アプリケーション が自身の プロセス を強制終了することによって不適切に終了した場合、
/// 自殺を実行する前にこの API を呼び出す必要があります。 この API は Android 特有です。
///
///
static void onKillProcess()QT JS SDK ブリッジ を備えた flutter_webview_plugin プラグインの使用手順
flutter プロジェクトがコミュニティ flutter_webview_plugin(サポート バージョン 0.4.0 +)+ H5 をハイブリッド開発に使用する場合、QuickTracking JS バージョン 統計 SDK が H5 ページに統合されている場合、QT JS SDK 統計は onJSCall API を使用して Android/iOS ネイティブ統計 SDK に送信でき、ネイティブ統計 SDK は JS SDK 統計を レポート します。
サンプルプロジェクト example/lib/main.dart の 15 ~ 23 行目を参照する必要があります。 flutter_webview_plugin プラグインに「Umeng4AplusFlutter」という名前の JS ブリッジ を登録し、onMessageReceived: (JavascriptMessage message) コールバック関数 で QTCommonSdk.onJSCall(message.message) を呼び出します。
次のサンプルコードは、example/lib/main.dart ファイルにあります。
// 「Umeng4AplusFlutter」という名前の JavaScript ブリッジ チャンネル コールバック オブジェクト を定義します。
final Set<JavascriptChannel> jsChannels = [
JavascriptChannel(
name: 'Umeng4AplusFlutter',
onMessageReceived: (JavascriptMessage message) {
// print(message.message);
QTCommonSdk.onJSCall(message.message);
}),
].toSet();
//..........
// flutter webview プラグイン オブジェクト が有効になっているときに js ブリッジ オブジェクト を登録します。
flutterWebViewPlugin.launch(
selectedUrl,
javascriptChannels: jsChannels,
rect: Rect.fromLTWH(
0.0, 0.0, MediaQuery.of(context).size.width, 300.0),
userAgent: kAndroidUserAgent,
invalidUrlRegex:
r'^(https).+(twitter)', // ユーザーが flutter ウェブサイトでアイコンをクリックしたときに twitter にリダイレクトされないようにします
);注: QTConfigure.init を呼び出してプラグインを初期化する必要があります。 Appkey は、統計 バックグラウンド の管理> アプリケーション 管理> アプリケーション 管理> アプリケーション リストページで表示するか、マイ プロダクト>設定>アプリケーション 情報で アプリケーション を選択して Appkey を表示できます。