Flutter插件se_flutter_sdk_test的使用方法

Flutter插件se_flutter_sdk_test的使用方法

se_flutter_sdk_test

这是一个新的 Flutter 插件项目。

获取开始

这个项目是一个起点,用于创建一个 Flutter 插件包,这是一种专门包含 Android 和/或 iOS 平台特定实现代码的包。

要开始 Flutter 开发,请查看在线文档,它提供了教程、示例、移动开发指南以及完整的 API 参考。

示例代码

以下是 main.dart 文件的完整示例代码:

import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:se_flutter_sdk_test/solar_engine_core/solar_engine.dart';
import 'package:se_flutter_sdk_test/solar_engine_core/solar_engine_config.dart';
import 'package:se_flutter_sdk_test/solar_engine_core/solar_engine_event_data.dart';
import 'package:se_flutter_sdk_test/solar_engine_remote_config/remote_config.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // 这个小部件是你的应用程序的根。
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'SolarEngine Demo'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

typedef ClickCallbackString = void Function(String result);
typedef ClickCallbackString2 = void Function(String result1, String result2);
typedef ClickCallback = void Function();

class SETextButtonItem extends StatelessWidget {
  final String title;
  final String desc;
  final ClickCallbackString tapAction;

  var _titleTxt = new TextEditingController();

  SETextButtonItem(this.title, this.desc, this.tapAction);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Container(
      padding: EdgeInsets.all(12),
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        crossAxisAlignment: CrossAxisAlignment.center,
        children: <Widget>[
          TextField(
            controller: _titleTxt, // 把 TextEditingController 对象应用到 TextField 上
            decoration: InputDecoration(
              filled: true,
              fillColor: Colors.grey[200],
              hintText: desc,
            ),
          ),
          SizedBox(height: 8),
          TextButton(
            onPressed: () {
              tapAction!(_titleTxt.text);
            },
            autofocus: true,
            child: Text(
              title,
              style: TextStyle(fontSize: 18.0),
            ),
            style: ButtonStyle(
              backgroundColor: MaterialStateProperty.resolveWith((states) {
                return Colors.blue[200];
              }),
              padding: MaterialStateProperty.all(
                  EdgeInsets.only(left: 50, right: 50)),
            ),
          ),
        ],
      ),
    );
  }
}

class SEText2ButtonItem extends StatelessWidget {
  final String title;
  final String desc1;
  final String desc2;
  final ClickCallbackString2 tapAction;

  var _titleTxt1 = new TextEditingController();
  var _titleTxt2 = new TextEditingController();

  SEText2ButtonItem(this.title, this.desc1, this.desc2, this.tapAction);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Container(
      padding: EdgeInsets.all(12),
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        crossAxisAlignment: CrossAxisAlignment.center,
        children: <Widget>[
          Row(
            mainAxisAlignment: MainAxisAlignment.start,
            children: [
              Expanded(
                child: TextField(
                  controller: _titleTxt1,
                  decoration: InputDecoration(
                    filled: true,
                    fillColor: Colors.grey[200],
                    hintText: desc1,
                  ),
                ),
              ),
              SizedBox(width: 8),
              Expanded(
                child: TextField(
                  controller: _titleTxt2,
                  decoration: InputDecoration(
                    filled: true,
                    fillColor: Colors.grey[200],
                    hintText: desc2,
                  ),
                ),
              ),
            ],
          ),
          SizedBox(height: 8),
          TextButton(
            onPressed: () {
              tapAction!(_titleTxt1.text, _titleTxt2.text);
            },
            autofocus: true,
            child: Text(
              title,
              style: TextStyle(fontSize: 18.0),
            ),
            style: ButtonStyle(
              backgroundColor: MaterialStateProperty.resolveWith((states) {
                return Colors.blue[200];
              }),
              padding: MaterialStateProperty.all(
                  EdgeInsets.only(left: 50, right: 50)),
            ),
          ),
        ],
      ),
    );
  }
}

class SEButtonItem extends StatelessWidget {
  final String title;
  final ClickCallback tapAction;

  SEButtonItem(this.title, this.tapAction);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Container(
      padding: EdgeInsets.all(12),
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        crossAxisAlignment: CrossAxisAlignment.center,
        children: <Widget>[
          TextButton(
            onPressed: () {
              tapAction!();
            },
            autofocus: true,
            child: Text(
              title,
              style: TextStyle(fontSize: 18.0),
            ),
            style: ButtonStyle(
              backgroundColor: MaterialStateProperty.resolveWith((states) {
                return Colors.blue[200];
              }),
              padding: MaterialStateProperty.all(
                  EdgeInsets.only(left: 50, right: 50)),
            ),
          ),
        ],
      ),
    );
  }
}

class _MyHomePageState extends State<MyHomePage> {
  void toast(String text) {
    final snackBar = SnackBar(content: Text(text));
    ScaffoldMessenger.of(context).showSnackBar(snackBar);
  }

  late final String timerEventStr;

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: Center(
        child: Padding(
          padding: EdgeInsets.only(left: 0, right: 0),
          child: CustomScrollView(
            shrinkWrap: true,
            slivers: <Widget>[
              SliverPadding(
                padding: const EdgeInsets.all(0),
                sliver: SliverList(
                  delegate: SliverChildListDelegate(
                    <Widget>[
                      SEButtonItem("Init SDK old", () {
                        String appkey = "4c3e7d87ebac99cd";
                        String userId = "1fca0a4b93fa7170";

                        SolarEngine.preInitialize(appkey);

                        SolarEngineConfig config = SolarEngineConfig();
                        config.logEnabled = true;
                        config.disableRecordLog = true;
                        SERemoteConfigData rcConfig = SERemoteConfigData();
                        rcConfig.enable = true;
                        rcConfig.logEnabled = true;
                        rcConfig.customIDProperties = {
                          "key": "customID",
                          "value": "androidID"
                        };
                        rcConfig.customIDEventProperties = {
                          "key": "customEventID",
                          "value": "_appStart"
                        };
                        rcConfig.customIDUserProperties = {
                          "key": "customUserID",
                          "value": "Topic"
                        };
                        config.remoteConfigData = rcConfig;

                        config.onAttributionSuccess = (data) {
                          print("onAttributionSuccess----");
                          print(data);
                          toast(data!);
                        };
                        config.onAttributionFail = (code) {
                          print("onAttributionFail----");
                          print(code);
                          toast("onAttributionFail" + code.toString());
                        };

                        SolarEngine.initialize(appkey, userId, config);
                      }),

                      SEButtonItem("Init SDK new", () {
                        String appkey = "4c3e7d87ebac99cd";
                        String userId = "1fca0a4b93fa7170";

                        SolarEngine.preInitialize(appkey);

                        SolarEngineConfig config = SolarEngineConfig();
                        config.logEnabled = true;
                        config.disableRecordLog = true;
                        SERemoteConfigData rcConfig = SERemoteConfigData();
                        rcConfig.enable = true;
                        rcConfig.logEnabled = true;
                        rcConfig.customIDProperties = {
                          "key": "customID",
                          "value": "androidID"
                        };
                        rcConfig.customIDEventProperties = {
                          "key": "customEventID",
                          "value": "_appStart"
                        };
                        rcConfig.customIDUserProperties = {
                          "key": "customUserID",
                          "value": "Topic"
                        };
                        config.remoteConfigData = rcConfig;

                        config.onAttributionSuccess = (data) {
                          print("onAttributionSuccess----");
                          print(data);
                          toast(data!);
                        };
                        config.onAttributionFail = (code) {
                          print("onAttributionFail----");
                          print(code);
                          toast("onAttributionFail" + code.toString());
                        };

                        SolarEngine.initializeWithCallbacK(appkey, config, (code) {
                          print("initializeWithCallbacK----");
                          print(code);
                        });
                      }),

                      SEButtonItem("report", () {
                        SolarEngine.reportEventImmediately();
                      }),

                      SETextButtonItem("asyncFetchRemoteConfig", "key", (key) {
                        SERemoteConfig().asyncFetchRemoteConfig(key, (result) {
                          print("在线参数回调-----");
                          print(result);
                          toast("result=" + result!);
                        });
                      }),
                      SETextButtonItem("setRemoteDefaultConfig", "properties",
                              (properties) async {
                            List<dynamic> data = [
                              {"name": "key1", "type": 2, "value": 1},
                              {"name": "key2", "type": 2, "value": 0}
                            ];
                            SERemoteConfig().setRemoteDefaultConfig(data);
                          }),
                      SETextButtonItem(
                          "setRemoteConfigUserProperties", "properties",
                              (properties) {
                            if (properties.isNotEmpty) {
                              Map<String, dynamic> userProperties =
                              json.decode(properties);
                              SERemoteConfig()
                                  .setRemoteConfigUserProperties(userProperties);
                              return;
                            }
                            Map<String, dynamic> userProperties = {};
                            userProperties['name'] = 'liming';
                            userProperties['age'] = "20";
                            SERemoteConfig()
                                .setRemoteConfigUserProperties(userProperties);
                          }),
                      SETextButtonItem(
                          "setRemoteConfigEventProperties", "properties",
                              (properties) {
                            if (properties.isNotEmpty) {
                              Map<String, dynamic> eventProperties =
                              json.decode(properties);
                              SERemoteConfig()
                                  .setRemoteConfigEventProperties(eventProperties);
                              return;
                            }
                            Map<String, dynamic> eventProperties = {};
                            eventProperties['event'] = 'end';
                            eventProperties['pro'] = "max";
                            SERemoteConfig()
                                .setRemoteConfigEventProperties(eventProperties);
                          }),

                      SEButtonItem("fastFetchRemoteConfigAll", () async {
                            Map? result =
                            await SERemoteConfig().fastFetchRemoteConfigAll();
                            toast("result=${result.toString()}");
                          }),
                      SEButtonItem("asyncFetchRemoteConfigAll", () {
                        SERemoteConfig().asyncFetchRemoteConfigAll((result) {
                          print("在线参数回调-----");
                          print(result);
                          toast("result=" + result.toString());
                        });
                      }),

                      SETextButtonItem("asyncFetchRemoteConfig", "key", (key) {
                        SERemoteConfig().asyncFetchRemoteConfig(key, (result) {
                          print("在线参数回调-----");
                          print(result);
                          toast("result=" + result!);
                        });
                      }),

                      SETextButtonItem("fastFetchRemoteConfig", "key",
                              (key) async {
                            String? result =
                            await SERemoteConfig().fastFetchRemoteConfig(key);
                            toast("result=${result!}");
                          }),
                      SEText2ButtonItem(
                          "setPresetEventProperties",
                          "PresetEventType",
                          "properties", (presetEventType, propertiesString) {
                        if (presetEventType.isNotEmpty &&
                            propertiesString.isNotEmpty) {
                          Map<String, dynamic> customProperties =
                          json.decode(propertiesString);
                          if (presetEventType == '0') {
                            SolarEngine.setPresetEventProperties(
                                PresetEventType.AppInstall, customProperties);
                          } else if (presetEventType == '1') {
                            SolarEngine.setPresetEventProperties(
                                PresetEventType.AppStart, customProperties);
                          } else if (presetEventType == '2') {
                            SolarEngine.setPresetEventProperties(
                                PresetEventType.AppEnd, customProperties);
                          } else {
                            SolarEngine.setPresetEventProperties(
                                PresetEventType.All, customProperties);
                          }
                          return;
                        }
                        Map<String, dynamic> customProperties = {};
                        customProperties['kind'] = 'setPresetEventProperties';
                        customProperties['name'] = "Jim";
                        if (presetEventType == '0') {
                          SolarEngine.setPresetEventProperties(
                              PresetEventType.AppInstall, customProperties);
                        } else if (presetEventType == '1') {
                          SolarEngine.setPresetEventProperties(
                              PresetEventType.AppStart, customProperties);
                        } else if (presetEventType == '2') {
                          SolarEngine.setPresetEventProperties(
                              PresetEventType.AppEnd, customProperties);
                        } else {
                          SolarEngine.setPresetEventProperties(
                              PresetEventType.All, customProperties);
                        }
                      }),
                      SETextButtonItem("setVisitorID", "visitId", (result) {
                        SolarEngine.setVisitorID(result);
                      }),
                      SEButtonItem("updateConversionValue", () async {
                        var error = await SolarEngine.updateConversionValueWithErrorCallback(0);
                        print("sss-updateConversionValueWithErrorCallback =${error}");
                      }),
                      SETextButtonItem("setAccountID", "accountID", (result) {
                        SolarEngine.login(result);
                      }),
                      SEButtonItem("updateConversionValueSkan4", () async {
                        var error = await SolarEngine.updateConversionValueWithErrorCallbackSkad4(0, "", false);
                        print("sss-updateConversionValueWithErrorCallback =${error}");
                      }),
                      SEButtonItem("logout", () {
                        SolarEngine.logout();
                      }),

                      SEButtonItem("getPresetProperties", () async {
                        var properties = await SolarEngine.getPresetProperties();
                        toast("properties=${properties!}");
                      }),

                      SEButtonItem("getDistinctId", () async {
                        var distinctId = await SolarEngine.getDistinctId();
                        toast("distinctId=${distinctId!}");
                      }),
                      SEButtonItem("getAttribution", () async {
                        var getAttribution = await SolarEngine.getAttribution();
                        toast("getAttribution=${getAttribution!}");
                      }),
                      SETextButtonItem("setChannel", "setChannel", (result) {
                        SolarEngine.setChannel(result);
                      }),
                      SETextButtonItem("setGDPRArea", "setGDPRArea", (result) {
                        // bool setGDPRArea = bool.parse(result);
                        // SolarEngine.setGDPRArea(setGDPRArea);
                      }),
                      SETextButtonItem("setSuperProperties", "properties",
                              (propertiesString) {
                            if (propertiesString.isNotEmpty) {
                              Map<String, dynamic> properties =
                              json.decode(propertiesString);
                              SolarEngine.setSuperProperties(properties);
                              return;
                            }
                            Map<String, dynamic> properties = {};
                            properties['key1'] = 'String';
                            properties['key2'] = 2;
                            properties['key3'] = false;
                            properties['key4'] = 2.0;
                            properties['key5'] = 202309110902;
                            properties['key6'] = 2018.99;
                            Map<String, dynamic> jsonObject = {
                              "name": "仙尊",
                              "age": 30,
                              "address": {"street": "奥林匹克公园", "city": "beijing"}
                            };
                            properties['key7'] = jsonObject;
                            List<dynamic> jsonArray = ["小丑侧斩", "小丑换位", "英雄碎片"];
                            properties['key8'] = jsonArray;
                            SolarEngine.setSuperProperties(properties);
                          }),
                      SETextButtonItem("unsetSuperProperty", "key", (key) {
                        SolarEngine.unsetSuperProperty(key);
                      }),
                      SEButtonItem("clearSuperProperties", () {
                        SolarEngine.clearSuperProperties();
                      }),
                      SEText2ButtonItem(
                          "trackCustomEventWithPreEventData", "eventName", "properties",
                              (eventName, propertiesString) {
                            SECustomEventData customEventData = SECustomEventData();
                            customEventData.customEventName = "OpenAPP";
                            Map<String, dynamic> customProperties = {};
                            customProperties['time'] = '2020-10-10';
                            customProperties['data'] = "hello word!";
                            customEventData.customProperties = customProperties;

                            SEPreEventData sePreEventData = SEPreEventData();
                            Map<String, dynamic> preProperties = {};
                            preProperties['_currency_type'] = 'USD';
                            preProperties['_pay_amount'] = 10;

                            sePreEventData.preProperties = preProperties;

                            SolarEngine.trackCustomEventWithPreEventData(customEventData,sePreEventData);
                          }),

                      SEText2ButtonItem(
                          "trackCustomEvent", "eventName", "properties",
                              (eventName, propertiesString) {
                            if (propertiesString.isNotEmpty &&
                                eventName.isNotEmpty) {
                              SECustomEventData event = SECustomEventData();
                              event.customEventName = eventName;
                              Map<String, dynamic> properties =
                              json.decode(propertiesString);
                              event.customProperties = properties;
                              SolarEngine.trackFirstEvent(event);
                              return;
                            }
                            SECustomEventData customEventData = SECustomEventData();
                            customEventData.customEventName = "OpenAPP";
                            Map<String, dynamic> customProperties = {};
                            customProperties['time'] = '2020-10-10';
                            customProperties['data'] = "hello word!";
                            customEventData.firstCheckId = "11111";

                            customEventData.customProperties = customProperties;
                            SolarEngine.trackFirstEvent(customEventData);
                          }),
                      SETextButtonItem("trackIAP", "properties", (pString) {
                        if (pString.isNotEmpty) {
                          Map<String, dynamic> properties =
                          json.decode(pString);
                          SEAppPurchaseData purchase = SEAppPurchaseData();
                          purchase.orderId = properties["orderId"];
                          purchase.payAmount = properties["payAmount"];
                          purchase.currencyType = properties["currencyType"];
                          purchase.payType = properties["payType"];
                          purchase.productId = properties["productId"];
                          purchase.productName = properties["productName"];
                          purchase.productNum = properties["productNum"];
                          purchase.payStatus = properties["payStatus"];
                          purchase.failReason = properties["failReason"];
                          purchase.customProperties =
                          properties["customProperties"];
                          SolarEngine.trackFirstEvent(purchase);
                          return;
                        }
                        SEAppPurchaseData appPurchaseData = SEAppPurchaseData();
                        appPurchaseData.currencyType = "CN";
                        appPurchaseData.failReason = "支付失败";
                        appPurchaseData.orderId = "1123";
                        appPurchaseData.payAmount = 90.99;
                        appPurchaseData.payStatus = 1;
                        appPurchaseData.payType = "weixin";
                        appPurchaseData.productId = "232dddd";
                        appPurchaseData.productName = "皮肤";
                        appPurchaseData.productNum = 1;
                        Map<String, dynamic> customProperties = {};
                        customProperties['name'] = 'wyq';
                        customProperties['age'] = 10;
                        customProperties['like'] = "啤酒";
                        appPurchaseData.customProperties = customProperties;
                        SolarEngine.trackAppPurchase(appPurchaseData);

                        appPurchaseData.firstCheckId = "11111";

                        SolarEngine.trackFirstEvent(appPurchaseData);
                      }),
                      SETextButtonItem("trackAdImp", "properties", (pString) {
                        if (pString.isNotEmpty) {
                          Map<String, dynamic> properties =
                          json.decode(pString);

                          SEAppImpressionData appImpressionData =
                          SEAppImpressionData();
                          appImpressionData.adNetworkADID =
                          properties["adNetworkADID"];
                          appImpressionData.adNetworkAppID =
                          properties["adNetworkAppID"];
                          appImpressionData.adNetworkPlatform =
                          properties["adNetworkPlatform"];
                          appImpressionData.mediationPlatform =
                          properties["mediationPlatform"];
                          appImpressionData.adType = properties["adType"];
                          appImpressionData.currencyType =
                          properties["currencyType"];
                          appImpressionData.ecpm = properties["ecpm"];
                          appImpressionData.isRenderSuccess =
                          properties["isRenderSuccess"];
                          appImpressionData.customProperties =
                          properties["customProperties"];
                          SolarEngine.trackFirstEvent(appImpressionData);
                          return;
                        }

                        SEAppImpressionData appImpressionData =
                        SEAppImpressionData();
                        appImpressionData.mediationPlatform = "toutiao";
                        appImpressionData.adNetworkADID = "22323";
                        appImpressionData.adNetworkAppID = "3SDFED";
                        appImpressionData.adNetworkPlatform = "4";
                        appImpressionData.mediationPlatform = "custom";
                        appImpressionData.adType = 2;
                        appImpressionData.currencyType = "USD";
                        appImpressionData.ecpm = 22.9;
                        appImpressionData.isRenderSuccess = true;
                        Map<String, dynamic> customProperties = {};
                        customProperties['goods'] = 'shoes';
                        customProperties['goodsprice'] = 20;
                        customProperties['goodsaddress'] = "北京";
                        appImpressionData.customProperties = customProperties;
                        appImpressionData.firstCheckId = "111";
                        SolarEngine.trackFirstEvent(appImpressionData);
                      }),
                      SETextButtonItem("trackAdClick", "properties", (pString) {
                        if (pString.isNotEmpty) {
                          Map<String, dynamic> properties =
                          json.decode(pString);
                          SEAdClickData adClickData = SEAdClickData();
                          adClickData.adPlatform = properties["adPlatform"];
                          adClickData.mediationPlatform =
                          properties["mediationPlatform"];
                          adClickData.adType = properties["adType"];
                          adClickData.adNetworkADID =
                          properties["adNetworkADID"];
                          adClickData.adType = properties["adType"];
                          adClickData.customProperties =
                          properties["customProperties"];
                          SolarEngine.trackFirstEvent(adClickData);
                          return;
                        }
                        SEAdClickData adClickData = SEAdClickData();
                        adClickData.adPlatform = "mtg";
                        adClickData.mediationPlatform = "solar-engine";
                        adClickData.adType = 1;
                        adClickData.adNetworkADID = "11222ffff";
                        Map<String, dynamic> customProperties = {};
                        if (pString.isNotEmpty) {
                          customProperties = json.decode(pString);
                        } else {
                          customProperties['app'] = 'taobao';
                          customProperties['sex'] = "man";
                        }
                        adClickData.customProperties = customProperties;
                        adClickData.firstCheckId = "1111";
                        SolarEngine.trackFirstEvent(adClickData);
                      }),
                      SETextButtonItem("trackAppAttr", "properties", (pString) {
                        if (pString.isNotEmpty) {
                          Map<String, dynamic> properties =
                          json.decode(pString);
                          SEAppAttrData appAttrData = SEAppAttrData();
                          appAttrData.adAccountId = properties["adAccountId"];
                          appAttrData.adAccountName =
                          properties["adAccountName"];
                          appAttrData.adCampaignId = properties["adCampaignId"];
                          appAttrData.adCampaignName =
                          properties["adCampaignName"];
                          appAttrData.adCreativeId = properties["adCreativeId"];
                          appAttrData.adCreativeName =
                          properties["adCreativeName"];
                          appAttrData.adNetwork = properties["adNetwork"];
                          appAttrData.adOfferId = properties["adOfferId"];
                          appAttrData.adOfferName = properties["adOfferName"];
                          appAttrData.attributionPlatform =
                          properties["attributionPlatform"];
                          appAttrData.subChannel = properties["subChannel"];
                          appAttrData.customProperties =
                          properties["customProperties"];
                          SolarEngine.trackFirstEvent(appAttrData);
                          return;
                        }
                        SEAppAttrData appAttrData = SEAppAttrData();
                        appAttrData.adAccountId = "2222ddd";
                        appAttrData.adAccountName = "mtg";
                        appAttrData.adCampaignId = "12323";
                        appAttrData.adCampaignName = "animal";
                        appAttrData.adCreativeId = "dkdkd11";
                        appAttrData.adCreativeName = "dog";
                        appAttrData.adNetwork = "ks";
                        appAttrData.adOfferId = "100oo";
                        appAttrData.adOfferName = "wanmeishijie";
                        appAttrData.attributionPlatform = "tencent";
                        appAttrData.subChannel = "bytedance";
                        Map<String, dynamic> customProperties = {};
                        if (pString.isNotEmpty) {
                          customProperties = json.decode(pString);
                        } else {
                          customProperties['channel'] = 'xiaomi';
                          customProperties['date'] = "10.20";
                        }
                        appAttrData.customProperties = customProperties;
                        appAttrData.firstCheckId = "111";
                        SolarEngine.trackFirstEvent(appAttrData);
                      }),
                      SETextButtonItem("trackRegister", "properties",
                              (pString) {
                            if (pString.isNotEmpty) {
                              Map<String, dynamic> properties =
                              json.decode(pString);
                              SEAppRegisterData appRegisterData =
                              SEAppRegisterData();
                              appRegisterData.regType = properties["regType"];
                              appRegisterData.status = properties["status"];
                              appRegisterData.customProperties =
                              properties["customProperties"];
                              SolarEngine.trackFirstEvent(appRegisterData);
                              return;
                            }
                            SEAppRegisterData appRegisterData = SEAppRegisterData();
                            appRegisterData.regType = "QQ";
                            appRegisterData.status = "success";
                            Map<String, dynamic> customProperties = {};
                            if (pString.isNotEmpty) {
                              customProperties = json.decode(pString);
                            } else {
                              customProperties['type'] = 'wifi';
                              customProperties['like'] = "foods";
                              customProperties['re'] = "QQ";
                            }
                            appRegisterData.customProperties = customProperties;
                            appRegisterData.firstCheckId = "1111";
                            SolarEngine.trackFirstEvent(appRegisterData);
                          }),
                      SETextButtonItem("trackLogin", "properties", (pString) {
                        if (pString.isNotEmpty) {
                          Map<String, dynamic> properties =
                          json.decode(pString);
                          SEAppLoginData appLoginData = SEAppLoginData();
                          appLoginData.loginType = properties["regType"];
                          appLoginData.status = properties["status"];
                          appLoginData.customProperties =
                          properties["customProperties"];
                          SolarEngine.trackFirstEvent(appLoginData);
                          return;
                        }
                        SEAppLoginData appLoginData = SEAppLoginData();
                        appLoginData.loginType = "weixin";
                        appLoginData.status = "failed";
                        Map<String, dynamic> customProperties = {};
                        if (pString.isNotEmpty) {
                          customProperties = json.decode(pString);
                        } else {
                          customProperties['type'] = 'wifi';
                          customProperties['like'] = "foods";
                          customProperties['re'] = "QQ";
                        }
                        appLoginData.customProperties = customProperties;
                        appLoginData.firstCheckId = "111";
                        SolarEngine.trackFirstEvent(appLoginData);
                      }),
                      SETextButtonItem("trackOrder", "properties", (pString) {
                        if (pString.isNotEmpty) {
                          Map<String, dynamic> properties =
                          json.decode(pString);
                          SEAppOrderData appOrderData = SEAppOrderData();
                          appOrderData.status = properties["status"];
                          appOrderData.payType = properties["payType"];
                          appOrderData.payAmount = properties["payAmount"];
                          appOrderData.orderId = properties["orderId"];
                          appOrderData.currencyType =
                          properties["currencyType"];
                          appOrderData.customProperties =
                          properties["customProperties"];
                          SolarEngine.trackFirstEvent(appOrderData);
                          return;
                        }
                        SEAppOrderData appOrderData = SEAppOrderData();
                        appOrderData.status = "failed";
                        appOrderData.payType = "weixin";
                        appOrderData.payAmount = 20.33;
                        appOrderData.orderId = "111222333";
                        appOrderData.currencyType = "USD";
                        Map<String, dynamic> customProperties = {};
                        if (pString.isNotEmpty) {
                          customProperties = json.decode(pString);
                        } else {
                          customProperties['app'] = 'taobao';
                          customProperties['sex'] = "man";
                        }
                        appOrderData.customProperties = customProperties;
                        appOrderData.firstCheckId = "111";
                        SolarEngine.trackFirstEvent(appOrderData);
                      }),
                      SETextButtonItem("eventStart", "eventName",
                              (eventName) async {
                            SETimerEventData event = SETimerEventData();
                            event.customEventName = "timer_event_my";
                            Map<String, dynamic> customProperties = {};
                            customProperties['kind'] = 'timer';
                            customProperties['send'] = "ture";
                            event.customProperties = customProperties;
                            event.ts = DateTime.now().millisecondsSinceEpoch;
                            timerEventStr =
                            await SolarEngine.createTimerEvent(event);
                          }),
                      SEText2ButtonItem(
                          "eventFinish", "eventName", "properties",
                              (eventName, propertiesString) {
                            SolarEngine.trackTimerEvent(timerEventStr);
                          }),
                      SETextButtonItem("userInit", "properties", (pString) {
                        Map<String, dynamic> properties = {};
                        if (pString.isNotEmpty) {
                          properties = json.decode(pString);
                        } else {
                          properties['kind'] = "userInit";
                        }
                        SolarEngine.userInit(properties);
                      }),
                      SETextButtonItem("userUpdate", "properties", (pString) {
                        Map<String, dynamic> properties = {};
                        if (pString.isNotEmpty) {
                          properties = json.decode(pString);
                        } else {
                          properties['kind'] = "userUpdate";
                        }
                        SolarEngine.userUpdate(properties);
                      }),
                      SETextButtonItem("userAdd", "properties", (pString) {
                        Map<String, dynamic> properties = {};
                        if (pString.isNotEmpty) {
                          properties = json.decode(pString);
                        } else {
                          properties['kind'] = "userAdd";
                        }
                        SolarEngine.userAdd(properties);
                      }),
                      SETextButtonItem("userUnset", "properties", (pString) {
                        List<String> properties;
                        if (pString.isNotEmpty) {
                          properties = json.decode(pString);
                        } else {
                          properties = ['apple', 'orange', 'banana'];
                        }
                        SolarEngine.userUnset(properties);
                      }),
                      SETextButtonItem("userAppend", "properties", (pString) {
                        Map<String, dynamic> properties = {};
                        if (pString.isNotEmpty) {
                          properties = json.decode(pString);
                        } else {
                          properties['kind'] = "userAppend";
                        }
                        SolarEngine.userAppend(properties);
                      }),
                      SEButtonItem("userDeleteByAccountId", () {
                        SolarEngine.userDelete(
                            SEUserDeleteType.DELETE_BY_ACCOUNTID);
                      }),
                      SEButtonItem("userDeleteByVisitorId", () {
                        SolarEngine.userDelete(
                            SEUserDeleteType.DELETE_BY_VISITORID);
                      }),
                    ],
                  ),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

更多关于Flutter插件se_flutter_sdk_test的使用方法的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter插件se_flutter_sdk_test的使用方法的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


se_flutter_sdk_test 是一个未知的 Flutter 插件,通常情况下,插件的名称和功能可以通过其文档、GitHub 仓库或 pub.dev 页面来了解。由于你提到的插件名称看起来像是一个测试 SDK,我无法直接提供具体的使用方法,但我可以给你一些通用的步骤来探索和使用一个未知的 Flutter 插件。

1. 查找插件的来源

首先,你需要确认插件的来源。通常,Flutter 插件会发布在 pub.dev 上。你可以尝试在 pub.dev 上搜索 se_flutter_sdk_test,看看是否有相关的插件信息。

  • 打开 pub.dev
  • 在搜索框中输入 se_flutter_sdk_test
  • 查看插件的详细信息,包括文档、版本、依赖等

如果插件不在 pub.dev 上,你可能需要查找其他来源,比如 GitHub、私有仓库等。

2. 阅读插件的文档

如果找到了插件的来源,接下来就是阅读插件的文档。文档通常会提供以下信息:

  • 插件的功能描述
  • 安装步骤
  • 使用示例
  • API 参考
  • 常见问题解答

3. 安装插件

假设你找到了插件的 pub.dev 页面,安装插件的步骤通常如下:

  1. pubspec.yaml 文件中添加插件的依赖:

    dependencies:
      se_flutter_sdk_test: ^1.0.0  # 替换为实际的版本号
    
  2. 运行 flutter pub get 来获取插件。

4. 导入和使用插件

在 Dart 文件中导入插件,并根据文档中的示例代码进行使用:

import 'package:se_flutter_sdk_test/se_flutter_sdk_test.dart';

void main() {
  // 根据插件的 API 进行初始化或调用
  SeFlutterSdkTest.initialize();
  // 其他操作
}
回到顶部