Flutter广告信息获取插件advertising_info的使用

发布于 1周前 作者 zlyuanteng 来自 Flutter

Flutter广告信息获取插件advertising_info的使用

插件介绍

advertising_info 是一个用于从 Android 和 iOS 平台获取广告信息的 Flutter 插件。

使用方法

  1. advertising_info 添加到您的包的 pubspec.yaml 文件中:

    dependencies:
      advertising_info: ^x.x.x
    
  2. 通过以下命令获取插件:

    flutter pub get
    

示例代码

import 'package:flutter/material.dart';
import 'package:advertising_info/advertising_info.dart';

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

class MyApp extends StatefulWidget {
  [@override](/user/override)
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  AdvertisingInfo _advertisingInfo;

  [@override](/user/override)
  void initState() {
    super.initState();
    initPlatformState();
  }

  Future<void> initPlatformState() async {
    try {
      _advertisingInfo = await AdvertisingInfo.read();
    } on PlatformException {
      _advertisingInfo = null;
    }

    if (!mounted) return;

    setState(() {
      _advertisingInfo = _advertisingInfo;
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Padding(
          padding: const EdgeInsets.all(18.0),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              Text('advertising id:'),
              Text(
                '${_advertisingInfo?.id}',
                style: TextStyle(
                    color: Colors.blue,
                    fontSize: 12,
                    fontWeight: FontWeight.bold),
              ),
              Divider(),
              Text('isLimitAdTrackingEnabled:'),
              Text(
                '${_advertisingInfo?.isLimitAdTrackingEnabled}',
                style: TextStyle(
                    color: Colors.blue,
                    fontSize: 12,
                    fontWeight: FontWeight.bold),
              ),
              Divider(),
              Text('authorizationStatus:'),
              Text(
                '${_advertisingInfo?.authorizationStatus}',
                style: TextStyle(
                    color: Colors.blue,
                    fontSize: 12,
                    fontWeight: FontWeight.bold),
              )
            ],
          ),
        ),
      ),
    );
  }
}

更多关于Flutter广告信息获取插件advertising_info的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter广告信息获取插件advertising_info的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter项目中使用advertising_info插件来获取广告信息的代码案例。这个插件通常用于获取设备的广告标识符(如GAID或IDFA),以及广告追踪状态。

首先,确保你已经在pubspec.yaml文件中添加了advertising_info依赖:

dependencies:
  flutter:
    sdk: flutter
  advertising_info: ^x.y.z  # 请替换为最新版本号

然后,运行flutter pub get来安装依赖。

接下来,在你的Flutter项目中,你可以按照以下步骤使用advertising_info插件:

1. 导入插件

在你的Dart文件中导入advertising_info插件:

import 'package:advertising_info/advertising_info.dart';
import 'package:flutter/material.dart';

2. 获取广告信息

你可以使用AdvertisingInfo.loadInfo()方法来异步获取广告信息。下面是一个简单的例子,展示如何在Flutter应用中获取并显示广告标识符和广告追踪状态:

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

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String? advertisingId;
  bool? isLimitAdTrackingEnabled;

  @override
  void initState() {
    super.initState();
    _loadAdvertisingInfo();
  }

  Future<void> _loadAdvertisingInfo() async {
    try {
      final info = await AdvertisingInfo.loadInfo();
      setState(() {
        advertisingId = info.advertisingId;
        isLimitAdTrackingEnabled = info.isLimitAdTrackingEnabled;
      });
    } catch (e) {
      print('Failed to load advertising info: $e');
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Advertising Info Example'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                'Advertising ID:',
                style: TextStyle(fontSize: 18),
              ),
              Text(
                advertisingId ?? 'Loading...',
                style: TextStyle(fontSize: 16),
              ),
              SizedBox(height: 20),
              Text(
                'Limit Ad Tracking Enabled:',
                style: TextStyle(fontSize: 18),
              ),
              Text(
                isLimitAdTrackingEnabled == true ? 'Yes' : (isLimitAdTrackingEnabled == false ? 'No' : 'Loading...'),
                style: TextStyle(fontSize: 16),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

3. 处理权限(仅iOS)

在iOS上,获取广告标识符通常需要用户的同意。确保你的Info.plist文件中包含了适当的键来请求用户授权:

<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>

4. 注意事项

  • 隐私合规:在收集和使用广告标识符时,请确保遵守相关的隐私政策和法规,特别是GDPR和CCPA等。
  • 平台差异:广告标识符的获取和使用在不同的平台上可能有所不同,特别是在iOS和Android之间。确保测试你的应用在不同平台上的行为。

以上代码提供了一个基本的框架,用于在Flutter应用中获取和显示广告标识符以及广告追踪状态。根据你的具体需求,你可能需要进一步定制和扩展这些功能。

回到顶部