zjsdk_android 2.4.210
zjsdk_android: ^2.4.210 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("同意"))
],
));
});
}
}