zjsdk_android 2.4.212 copy "zjsdk_android: ^2.4.212" to clipboard
zjsdk_android: ^2.4.212 copied to clipboard

ZJSdk Android plugin. Required Flutter version >=3.0.0 and SDK>=2.17.0.

example/lib/main.dart

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'dart:async';

import 'package:flutter/services.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:zjsdk_android/zj_android.dart';
import 'package:zjsdk_android/zj_custom_controller.dart';
import 'package:zjsdk_android/event/event_action.dart';

import 'data/test_pos_id.dart';
import 'widget/main_list.dart';

void main() {
  runApp(MaterialApp(home: MyApp()));
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  /// 当前ZJ版本
  String _sdkVersion = 'Unknown';

  @override
  void initState() {
    super.initState();
    // 获取SDK版本号
    initSdkVersion();
    // 初始化SDK
    SchedulerBinding.instance.addPostFrameCallback((_) => {initSdk()});
  }

  Future<void> onAgreeUserPrivacy() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    prefs.setBool("privacy", true);
  }

  /// 获取当前的SDK版本
  Future<void> initSdkVersion() async {
    String sdkVersion;
    try {
      sdkVersion = await ZJAndroid.sdkVersion ?? 'Unknown ZJSdk version';
    } on PlatformException {
      sdkVersion = 'Failed to get ZJSdk version.';
    }

    if (!mounted) return;

    setState(() {
      _sdkVersion = sdkVersion;
    });
  }

  /// 初始化SDK
  Future<void> initSdk() async {
    ZJAndroid.initWithoutStart(TestPosId.appId,
        customController: ZJCustomController(canUseAndroidId: true));
    // 判断用户是否同意了隐私政策
    SharedPreferences prefs = await SharedPreferences.getInstance();
    bool _canStart = prefs.getBool("privacy") ?? false;
    if (_canStart) {
      // 用于已同意隐私政策,调用启动方法,并在成功回调后调用广告
      start();
    } else {
      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}");
        }
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        visualDensity: VisualDensity.adaptivePlatformDensity,
        appBarTheme: const AppBarTheme(
          centerTitle: true,
          titleTextStyle:
              TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
        ),
      ),
      home: Scaffold(
        appBar: AppBar(
          title: const Text('ZJAndroid-Demo'),
        ),
        body: Container(
          color: Colors.white,
          child: Column(
            children: [
              const SizedBox(height: 4),
              const Expanded(
                child: MainList(),
              ),
              Text("ZJAndroid-Version:$_sdkVersion\n"),
              const SizedBox(height: 20),
            ],
          ),
        ),
      ),
    );
  }

  void showPrivacyDialog(BuildContext context) {
    showDialog(
        barrierDismissible: false, //表示点击灰色背景的时候是否消失弹出框
        context: context,
        builder: (context) {
          return WillPopScope(
              onWillPop: () async => false,
              child: AlertDialog(
                title: const Text("APP隐私政策与用户协议"),
                content: const Text("模拟隐私政策与用户协议的对话框"),
                actions: [
                  TextButton(
                      onPressed: () {
                        Fluttertoast.showToast(msg: "未同意隐私政策,广告无法正常加载");
                        Navigator.of(context).pop();
                      },
                      child: const Text("不同意")),
                  TextButton(
                      onPressed: () {
                        start();
                        onAgreeUserPrivacy();
                        Navigator.of(context).pop();
                      },
                      child: const Text("同意"))
                ],
              ));
        });
  }
}
2
likes
0
points
221
downloads

Publisher

unverified uploader

Weekly Downloads

ZJSdk Android plugin. Required Flutter version >=3.0.0 and SDK>=2.17.0.

Homepage

License

unknown (license)

Dependencies

flutter

More

Packages that depend on zjsdk_android

Packages that implement zjsdk_android