se_flutter_sdk_cn 1.5.7 copy "se_flutter_sdk_cn: ^1.5.7" to clipboard
se_flutter_sdk_cn: ^1.5.7 copied to clipboard

This is the Flutter SDK of SolarEngine CN.

example/lib/main.dart

import 'dart:async';
import 'dart:convert';

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

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

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

  // This widget is the root of your application.
  @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, this.initialUri, this.latestUri});

  final String title;
  final String? initialUri;
  final String? latestUri;
  @override
  State<MyHomePage> createState() => _MyHomePageState();

  @override
  void initState() {
    print("initState+++");
    _initDeepLinkListener();
  }

  Future<void> _initDeepLinkListener() async {
    // 获取初始 deep link 链接
    // final initialLink = await getInitialLink();
    // if (initialLink != null) {
    //   print("initialLink:" + initialLink);
    // }
  }
}

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
  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(
              // border: OutlineInputBorder(),
              filled: true,
              fillColor: Colors.grey[200],
              // padding: MaterialStateProperty.all(EdgeInsets.only(left: 20,right: 20)),
              hintText: desc,
            ),
          ),
          SizedBox(height: 8),
          // Expanded(child: Container(
          //   width: 500,
          //   decoration: BoxDecoration(color: Colors.red),
          // )),
          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];
              }),
              // width: 500,
              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
  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,
                  //把 TextEditingController 对象应用到 TextField 上
                  decoration: InputDecoration(
                    // border: OutlineInputBorder(),
                    filled: true,
                    fillColor: Colors.grey[200],
                    // padding: MaterialStateProperty.all(EdgeInsets.only(left: 20,right: 20)),
                    hintText: desc1,
                  ),
                ),
              ),
              SizedBox(width: 8),
              Expanded(
                child: TextField(
                  controller: _titleTxt2,
                  //把 TextEditingController 对象应用到 TextField 上
                  decoration: InputDecoration(
                    // border: OutlineInputBorder(),
                    filled: true,
                    fillColor: Colors.grey[200],
                    // padding: MaterialStateProperty.all(EdgeInsets.only(left: 20,right: 20)),
                    hintText: desc2,
                  ),
                ),
              ),
            ],
          ),
          SizedBox(height: 8),
          // Expanded(child: Container(
          //   width: 500,
          //   decoration: BoxDecoration(color: Colors.red),
          // )),
          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];
              }),
              // width: 500,
              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
  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];
              }),
              // width: 500,
              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);
  }

  void onReceivedAllData(Map? config) {
    if (config != null) {
      print('Received remote config data: $config');
      // 这里可以处理配置数据
    } else {
      print('No remote config data received');
    }
  }

  late final String timerEventStr;

  @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", () {
                        // SolarEngineSDK sdk = SolarEngineSDK();
                        // sdk.initSDK();

                        // String appkey = "94d1d2738b4a32d6";
                        // String userId = "5c5a2f0fd35d9296";


                        SolarEngine.onDeepLinkCallback((code, data) {
                          print("onDeepLinkCallback----");
                          print(code);
                          if (code == 0) {
                            print("deeplink解析成功----");
                            print(data);
                          } else {
                            print("deeplink失败----$code");
                          }

                        });

                        SolarEngine.onDelayDeepLinkCallback((code, data) {
                          print("onDelayDeepLinkCallback----");
                          print(code);
                          if (code == 0) {
                            print("deeplink解析成功----");
                            print(data);
                          } else {
                            print("deeplink失败----$code");
                          }
                        });

                        String appkey = "e62fe50b80fc6e5c";

                        SolarEngine.preInitialize(appkey);

                        SolarEngineConfig config = SolarEngineConfig();
                        config.logEnabled = true;
                        config.enable2GReporting = true;
                        config.enableDelayDeeplink = true;
                        // config.attAuthorizationWaitingInterval = 100;

                        // SECustomDomain customDomain = SECustomDomain();
                        // customDomain.enable = true;
                        // customDomain.receiverDomain = "https://stable-solar.detailroi.com";
                        // customDomain.ruleDomain = "https://rule.detailroi.com";
                        // customDomain.tcpReceiverHost = "cn-test-receiver.solar-engine.com";
                        // customDomain.tcpRuleHost = "cn-test-rule.solar-engine.com";
                        // customDomain.tcpGatewayHost = "cn-test-gateway.solar-engine.com";
                        // config.customDomain = customDomain;

                        SERemoteConfigData rcConfig = SERemoteConfigData();
                        rcConfig.enable = true;
                        rcConfig.logEnabled = true;
                        // rcConfig.customIDProperties = {"k1":"v1"};
                        // rcConfig.customIDUserProperties = {"k2_user":"v1"};
                        // rcConfig.customIDEventProperties = {"k3_event":"v1"};
                        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");
                        };
                        SolarEngine.initializeWithCallbacK(
                          appkey, config,
                              (int? code) {
                            // 初始化回调处理
                            if (code == 0) {
                              // 初始化成功
                              print("初始化成功-----");
                              print(code);
                              SolarEngine.handleDeepLinkUrl("liongo://lionmobo.com/goods_detail?sedp_urlscheme=xxx&sedp_link=xxx&download=xxx&turl_id=xxx&a=1&b2&se_from=urlscheme");

                            } else {
                              // 初始化失败
                              print("初始化失败-----");
                              print(code);
                            }
                          },
                        );

                        // SolarEngine.initialize(appkey, userId, config);
                        // SolarEngine.initializeWithAppkey(appkey, config);
                      }),
                      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);
                          }),
                      SETextButtonItem("fastFetchRemoteConfig", "key",
                              (key) async {
                            String? result =
                            await SERemoteConfig().fastFetchRemoteConfig(key);
                            toast("result=${result!}");
                          }),
                      SEButtonItem("fastFetchRemoteConfigAll", () async {
                        Map? presetProperties = await SERemoteConfig().fastFetchRemoteConfigAll();
                        toast("presetProperties=${presetProperties.toString()!}");
                      }),
                      SEButtonItem("asyncFetchRemoteConfigAll", () async {
                        SERemoteConfig().asyncFetchRemoteConfigAll(onReceivedAllData);
                      }),
                      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("getVisitorID", () async {
                        var visitorID = await SolarEngine.getVisitorID();
                        toast("visitorID=${visitorID!}");
                      }),
                      SETextButtonItem("setAccountID", "accountID", (result) {
                        SolarEngine.login(result);
                      }),
                      SEButtonItem("getAccountID", () async {
                        var accountID = await SolarEngine.getAccountID();
                        toast("accountID=${accountID!}");
                      }),
                      SEButtonItem("logout", () {
                        SolarEngine.logout();
                      }),
                      SEButtonItem("getDistinctId", () async {
                        var distinctId = await SolarEngine.getDistinctId();
                        toast("distinctId=${distinctId!}");
                      }),
                      SEButtonItem("getAttribution", () async {
                        var getAttribution = await SolarEngine.getAttribution();
                        toast("getAttribution=${getAttribution!}");
                      }),
                      SEButtonItem("getPresetProperties", () async {
                        Map presetProperties = await SolarEngine.getPresetProperties();
                        toast("presetProperties=${presetProperties.toString()!}");
                      }),
                      SEButtonItem("reportEventImmediately", () async {
                        SolarEngine.reportEventImmediately();
                      }),
                      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();
                      }),
                      SEButtonItem("request ATT", () {
                        SolarEngine.requestTrackingAuthorizationWithCompletionHandler((code) {
                          if (code == 0) {
                            print('att-Not Determined');
                          } else if (code == 1) {
                            print('att-Restricted');
                          } else if (code == 2) {
                            print('att-Denied');
                          } else if (code == 3) {
                            print('att-Authorized');
                          }else if (code == 999) {
                            print('att-systom error');
                          } else {
                            print(code);
                          }
                        });
                      }),
                      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.trackCustomEvent(event);
                              SolarEngine.trackFirstEvent(event);

                              return;
                            }
                            SECustomEventData customEventData = SECustomEventData();
                            customEventData.customEventName = "OpenAPP";
                            Map<String, dynamic> customProperties = {};
                            customProperties['time'] = '2020-10-23';
                            customProperties['data'] = "hello word!";
                            customEventData.firstCheckId = "11111";
                            Map<String, dynamic> preProperties = {};
                            preProperties["_pay_amount"] = 1.2;
                            preProperties["_currency_type"] = "CNY";
                            preProperties["kkkkk"] = "CNY";
                            customEventData.preProperties = preProperties;
                            customEventData.customProperties = customProperties;
                            // SolarEngine.trackCustomEvent(customEventData);

                            SolarEngine.trackFirstEvent(customEventData);
                          }),
                      SEText2ButtonItem(
                          "trackCustomEventWithPreEventData", "eventName", "properties",
                              (eventName, propertiesString) {
                            SECustomEventData customEventData = SECustomEventData();
                            customEventData.customEventName = "OpenAPP";
                            Map<String, dynamic> customProperties = {};
                            customProperties['time'] = '2020-10-24';
                            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);
                          }),
                      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.trackAppPurchase(purchase);

                          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.trackAppImpress(appImpressionData);
                          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;
                        // SolarEngine.trackAppImpress(appImpressionData);
                        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.trackAdClick(adClickData);
                          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;
                        // SolarEngine.trackAdClick(adClickData);
                        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.trackAppAttr(appAttrData);

                          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;
                        // SolarEngine.trackAppAttr(appAttrData);

                        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.trackAppRegister(appRegisterData);
                              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;
                            // SolarEngine.trackAppRegister(appRegisterData);
                            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.trackAppLogin(appLoginData);
                          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;
                        // SolarEngine.trackAppLogin(appLoginData);
                        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.trackAppOrder(appOrderData);

                          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;
                        // SolarEngine.trackAppOrder(appOrderData);
                        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);
                                SolarEngine.eventStart("test");
                          }),
                      SEText2ButtonItem(
                          "eventFinish", "eventName", "properties",
                              (eventName, propertiesString) {
                                Map<String, dynamic> customProperties = {};
                                customProperties['kind'] = 'timer';
                                customProperties['send'] = "ture";
                                SolarEngine.eventFinish("test",customProperties);
                          }),
                      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);
                      }),
                    ],
                  ),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
1
likes
115
points
46
downloads

Publisher

unverified uploader

Weekly Downloads

This is the Flutter SDK of SolarEngine CN.

Homepage

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on se_flutter_sdk_cn

Packages that implement se_flutter_sdk_cn