SDK 初始化

SDK 初始化

此章节将演示如何在Flutter项目中初始化ZJSDK

提示

接入完成后,在正式上线前需要提供测试包,测试广告正常展现

初始化与启动

在进入应用后,通过ZJAndroid类的静态方法初始化 SDK。

初始化分为ZJAndroid#initWithoutStart方法与ZJAndroid#start两个方法。

两个方法需要按顺序调用,先调用initWithoutStart方法配置初始化的信息,再在用户同意隐私政策后调用start方法启动SDK,并确保启动成功后再请求广告。

方法参数说明
initWithoutStartinitwithoutstart 参数说明配置初始化信息,可以在用户同意隐私政策前调用
startstart 参数说明启动SDK,需要在用户同意隐私政策后尽快调用

initWithoutStart 参数说明

属性类型说明必填默认值
appIdstring媒体ID-
customControllerZJCustomController隐私控制
参照 隐私信息控制
×null
isDebugbool是否为调试模式
调试模式,会输出调试日志
×true
ageint用户年龄,仅针对海外市场
age 需要大于0
×0
gdprintGDPR授权,仅针对海外市场
-1为未知
0为用户未授权
1为用户授权
×-1
coppaintCOPPA授权,仅针对海外市场
-1为未知
0为成人
1为儿童
×-1
ccpaintCCPA授权,仅针对海外市场
-1为未知
0为允许出售
1为不允许出售
×-1
initWithoutStart接口声明
class ZJAndroid {
  /// 初始化SDK
  /// 可以在进入应用后立即调用
  /// 返回是否初始化成功
  static void initWithoutStart(

      /// 应用ID
      String appId,
      {
        /// 控制日志打印
        bool isDebug = true,

        /// gdpr状态,-1为未知,0为用户未授权,1为用户授权
        int gdpr = -1,

        /// coppa状态,-1为未知,0为成人,1为儿童
        int coppa = -1,

        /// ccpa状态,-1为未知,0为允许出售,1为不允许出售
        int ccpa = -1,

        /// 用户年龄,默认为0
        int age = 0,

        /// 隐私权限控制
        ZJCustomController? customController});
}        

start 参数说明

属性类型说明必填
onStartListenerFunction(ZJEvent ret)?回调事件×
initWithoutStart接口声明
class ZJAndroid {
  /// 启动SDK
  /// 需要在用户同意隐私政策之后尽快调用
  static void start({
    /// 启动回调
    /// [ret.event] {ZJEventAction.startSuccess | ZJEventAction.startFailed},启动失败时,需要解析ret.code等信息排查
    /// [ret.code] 错误码
    /// [ret.msg] 错误描述
    Function(ZJEvent ret)? onStartListener});
}    

初始化接入示例

example/lib/main.dart
/// 初始化SDK
void initSdk() {
  ZJAndroid.initWithoutStart(TestPosId.appId,
      customController: ZJCustomController(canUseAndroidId: true));
  // 判断用户是否同意了隐私政策
  if (_canStart) {
    // 用于已同意隐私政策,调用启动方法,并在成功回调后调用广告
    start();
  } else {
    // 展示隐私政策对话框,并在用户同意后调用`start`方法启动SDK
    showPrivacyDialog(context);
  }
}

/// 启动SDK
void start() {
  ZJAndroid.start(onStartListener: (ret) {
    if (ret.action == ZJEventAction.startSuccess) {
      Fluttertoast.showToast(msg: "初始化成功");
    } else {
      Fluttertoast.showToast(msg: "初始化失败:" + ret.msg!);
      if (kDebugMode) {
        print("${ret.action}:${ret.code}");
      }
    }
  });
}