Flutter信息在线获取插件flutter_infonline_library的使用
Flutter信息在线获取插件flutter_infonline_library的使用
Unoffical INFOnline Flutter库
该库用于伪名测量。
INFOnline Flutter库支持以下测量系统的并行操作:
- IOMp/SZM(INFOnline Library iOS/Android)
- ÖWA(INFOnline Library iOS/Android)
如果您对人口普查测量感兴趣,请查看flutter_iomb_library:
- IOMb/Census(IOMb Library iOS/Android)
要求
- Dart SDK:
>=2.17.6 <4.0.0
- Flutter:
>=2.5.0
- Android:
minSdkVersion 19
- iOS:
minSdkVersion 11
- 需要native iOS和Android INFOnline库
您将通过电子邮件从INFOnline支持团队获得native iOS和Android库。这些库不是公开的!
配置
在您的pubspec.yaml
文件中添加flutter_infonline_library
作为依赖项。
iOS
现在已嵌入iOS INFOnline库v.2.7.0。
只需打开项目中的ios/Podfile
,确保平台未被注释且最低版本为13。
platform :ios, '13.0'
Android
下载Android INFOnline库并将.aar
文件复制到项目中的以下文件夹:
android/app/libs/infonlinelib_2.5.0.aar
现在打开android/app/build.gradle
文件,并确保SDK版本大于等于19。
android {
defaultConfig {
minSdkVersion 26
targetSdkVersion 33
}
}
在应用的AndroidManifest.xml
文件中添加您的Ad Manager应用ID(在Ad Manager UI中标识)。
<manifest>
<application>
<!-- Sample Ad Manager app ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
</application>
</manifest>
使用
简单示例以在项目中测试插件。
示例
import 'package:flutter_infonline_library/flutter_infonline_library.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
if (Platform.isAndroid) {
// 启用日志记录,这将在IDE控制台中显示。
await InfonlineLibrary.instance.android.setDebugModeEnabled(true);
// 创建一个新的Android会话
await InfonlineLibrary.instance.session(IOLSessionType.szm).android.initIOLSession(
offerIdentifier: '<yourIdentifier>', debug: true, type: IOLPrivacyType.ack
);
} else if (Platform.isIOS) {
// 启用日志记录,这仅会在XCode控制台中显示。
await InfonlineLibrary.instance.ios.setDebugLogLevel(IOLDebugLevel.trace);
// 创建一个新的iOS会话
await InfonlineLibrary.instance.session(IOLSessionType.szm).ios.startSession(
offerIdentifier: '<yourIdentifier>', type: IOLPrivacyType.ack
);
}
// 记录一个视图事件
await InfonlineLibrary.instance.session(IOLSessionType.szm).logViewEvent(
type: IOLViewEventType.appeared,
category: '<yourCategory>'
);
}
支持的功能
共享于所有平台
InfonlineLibrary.instance.session(IOLSessionType.szm).logViewEvent(
type: IOLViewEventType.appeared,
category: '<yourCategory>'
);
InfonlineLibrary.instance.session(IOLSessionType.szm).sendLoggedEvents();
InfonlineLibrary.instance.session(IOLSessionType.szm).terminateSession();
InfonlineLibrary.instance.session(IOLSessionType.szm).setCustomConsent('<String>');
iOS特定功能
InfonlineLibrary.instance.ios.setDebugLogLevel(IOLDebugLevel.trace);
InfonlineLibrary.instance.session(IOLSessionType.szm).ios.startSession(
offerIdentifier: '<yourIdentifier>',
type: IOLPrivacyType.ack
);
List<String> logs = await InfonlineLibrary.instance.ios.mostRecentLogs(0);
更多详细信息请参阅官方的iOS文档。
Android特定功能
InfonlineLibrary.instance.android.setDebugModeEnabled(true);
InfonlineLibrary.instance.session(IOLSessionType.szm).android.initIOLSession(
offerIdentifier: '<yourIdentifier>',
debug: true,
type: IOLPrivacyType.ack
);
更多详细信息请参阅官方的Android文档。
完整示例
下面是完整的示例代码,演示如何在项目中使用flutter_infonline_library
插件。
import 'dart:io';
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter_infonline_library/flutter_infonline_library.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
if (Platform.isAndroid) {
await InfonlineLibrary.instance.android.setDebugModeEnabled(true);
await InfonlineLibrary.instance.session(IOLSessionType.szm).android.initIOLSession(
offerIdentifier: '<yourIdentifier>', debug: true, type: IOLPrivacyType.ack
);
// 启用发送已记录的事件
// await InfonlineLibrary.instance.session(IOLSessionType.szm).sendLoggedEvents();
// 终止会话
// await InfonlineLibrary.instance.session(IOLSessionType.szm).terminateSession();
// 延迟2秒
await Future.delayed(const Duration(seconds: 2));
// 设置自定义同意
await InfonlineLibrary.instance.session(IOLSessionType.szm).setCustomConsent('FF00810000');
// 延迟2秒
await Future.delayed(const Duration(seconds: 2));
// 记录视图事件
await InfonlineLibrary.instance.session(IOLSessionType.szm).logViewEvent(
type: IOLViewEventType.appeared,
category: '<category>'
);
// 启用发送已记录的事件
// await InfonlineLibrary.instance.session(IOLSessionType.szm).sendLoggedEvents();
}
if (Platform.isIOS) {
await InfonlineLibrary.instance.ios.setDebugLogLevel(IOLDebugLevel.trace);
// 延迟2秒
await Future.delayed(const Duration(seconds: 2));
// 启动iOS会话
await InfonlineLibrary.instance.session(IOLSessionType.szm).ios.startSession(
offerIdentifier: '<yourIdentifier>', type: IOLPrivacyType.ack
);
// 延迟2秒
await Future.delayed(const Duration(seconds: 2));
// 设置自定义同意
await InfonlineLibrary.instance.session(IOLSessionType.szm).setCustomConsent('FF00810000');
// 延迟2秒
await Future.delayed(const Duration(seconds: 2));
// 记录视图事件
await InfonlineLibrary.instance.session(IOLSessionType.szm).logViewEvent(
type: IOLViewEventType.appeared,
category: '<category>'
);
// 获取最近的日志
// List<String> logs = await InfonlineLibrary.instance.ios.mostRecentLogs(0);
// print('InfonlineLibrary Logs: ${logs.join("\n\n")}');
}
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
[@override](/user/override)
void initState() {
super.initState();
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Infonline Plugin'),
),
body: const Center(
child: Text('Running'),
),
),
);
}
}
更多关于Flutter信息在线获取插件flutter_infonline_library的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter信息在线获取插件flutter_infonline_library的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
flutter_infonline_library
是一个用于在 Flutter 应用中获取在线信息的插件。它通常用于从远程服务器获取数据、执行网络请求等操作。以下是如何使用 flutter_infonline_library
的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 flutter_infonline_library
的依赖。
dependencies:
flutter:
sdk: flutter
flutter_infonline_library: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 导入库
在你的 Dart 文件中导入 flutter_infonline_library
。
import 'package:flutter_infonline_library/flutter_infonline_library.dart';
3. 初始化插件
在使用插件之前,通常需要进行初始化。初始化通常在 main.dart
文件中进行。
void main() {
WidgetsFlutterBinding.ensureInitialized();
InfonlineLibrary.initialize(
apiKey: 'YOUR_API_KEY', // 替换为你的API Key
baseUrl: 'https://api.example.com', // 替换为你的API基础URL
);
runApp(MyApp());
}
4. 使用插件获取数据
你可以使用 InfonlineLibrary
提供的方法来获取数据。例如,使用 getData
方法从服务器获取数据。
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Flutter Infonline Library Example'),
),
body: FutureBuilder<Map<String, dynamic>>(
future: InfonlineLibrary.getData('/data-endpoint'), // 替换为你的API端点
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return Center(child: CircularProgressIndicator());
} else if (snapshot.hasError) {
return Center(child: Text('Error: ${snapshot.error}'));
} else if (!snapshot.hasData) {
return Center(child: Text('No data available'));
} else {
var data = snapshot.data!;
return ListView.builder(
itemCount: data.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(data.keys.elementAt(index)),
subtitle: Text(data.values.elementAt(index).toString()),
);
},
);
}
},
),
),
);
}
}
5. 处理网络请求
flutter_infonline_library
通常提供了一些方法来处理网络请求,例如 get
、post
、put
、delete
等。你可以根据需要进行调用。
Future<void> fetchData() async {
try {
var response = await InfonlineLibrary.get('/data-endpoint');
print('Response: $response');
} catch (e) {
print('Error: $e');
}
}
6. 处理错误和异常
在使用网络请求时,务必处理可能出现的错误和异常。你可以使用 try-catch
块来捕获异常,并根据需要显示错误信息。
Future<void> fetchData() async {
try {
var response = await InfonlineLibrary.get('/data-endpoint');
print('Response: $response');
} catch (e) {
print('Error: $e');
// 显示错误信息给用户
}
}