Flutter广告管理插件sourcepoint_unified_cmp_platform_interface的使用

Flutter广告管理插件sourcepoint_unified_cmp_platform_interface的使用

sourcepoint_unified_cmp_platform_interface workflow

style: very_good_analysis

sourcepoint_unified_cmp_platform_interface 是一个通用平台接口插件,用于sourcepoint_unified_cmp插件。此接口允许sourcepoint_unified_cmp插件及其平台特定实现确保它们支持相同的接口。

使用方法

要实现一个新的平台特定实现,需要扩展SourcepointUnifiedCmpPlatform并添加执行平台特定行为的实现。

以下是一个完整的示例Demo:

import 'package:flutter/material.dart';
import 'package:sourcepoint_unified_cmp/sourcepoint_unified_cmp.dart';
import 'package:sourcepoint_unified_cmp_platform_interface/sourcepoint_unified_cmp_platform_interface.dart';

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Sourcepoint Unified CMP Example'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () async {
              // 初始化 SourcepointUnifiedCmpPlatform
              SourcepointUnifiedCmpPlatform.instance = SourcepointUnifiedCmp();

              // 调用具体的CMP功能
              await SourcepointUnifiedCmpPlatform.instance.initializeCMP(
                accountId: 12345,
                containerId: 67890,
                gdpr: true,
                usPrivacy: '1YNN',
              );

              // 显示CMP弹窗
              await SourcepointUnifiedCmpPlatform.instance.showCMPDialog();
            },
            child: Text('初始化并显示CMP对话框'),
          ),
        ),
      ),
    );
  }
}

更多关于Flutter广告管理插件sourcepoint_unified_cmp_platform_interface的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

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


sourcepoint_unified_cmp_platform_interface 是一个用于在 Flutter 应用中管理广告合规性的插件,特别是与 Sourcepoint 的同意管理平台 (CMP) 集成。该插件提供了一个平台接口,使得开发者可以在 Flutter 应用中轻松地集成和管理用户的广告同意设置。

安装步骤

  1. pubspec.yaml 中添加依赖

    首先,你需要在 pubspec.yaml 文件中添加 sourcepoint_unified_cmp_platform_interface 的依赖。

    dependencies:
      sourcepoint_unified_cmp_platform_interface: ^latest_version
    

    然后,在终端运行 flutter pub get 来获取依赖。

  2. 导入插件

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

    import 'package:sourcepoint_unified_cmp_platform_interface/sourcepoint_unified_cmp_platform_interface.dart';
    

基本使用

sourcepoint_unified_cmp_platform_interface 插件提供了一个平台接口,你可以通过它来与 Sourcepoint CMP 进行交互。以下是基本的使用方法:

  1. 初始化 CMP

    在使用 CMP 之前,你需要初始化它。通常,你可以通过以下方式初始化:

    SourcepointUnifiedCmpPlatform.instance.initialize(
      accountId: 1234,
      propertyId: 5678,
      propertyName: 'your_property_name',
      pmId: 'your_pm_id',
    );
    

    其中,accountIdpropertyIdpropertyNamepmId 是你在 Sourcepoint 控制台中配置的参数。

  2. 显示同意对话框

    你可以通过调用以下方法来显示同意对话框:

    SourcepointUnifiedCmpPlatform.instance.showConsentDialog();
    

    这将显示一个对话框,用户可以在其中选择他们的广告同意设置。

  3. 获取同意状态

    你可以通过以下方法获取用户的同意状态:

    var consentStatus = await SourcepointUnifiedCmpPlatform.instance.getConsentStatus();
    print('Consent Status: $consentStatus');
    

    consentStatus 将包含用户当前的同意设置。

  4. 监听同意状态的变化

    你可以监听用户同意状态的变化:

    SourcepointUnifiedCmpPlatform.instance.onConsentStatusChanged.listen((consentStatus) {
      print('Consent Status Changed: $consentStatus');
    });
    

    每次用户更改他们的同意设置时,都会触发此事件。

高级用法

  1. 自定义 UI

    你可以自定义 CMP 对话框的 UI。SourcepointUnifiedCmpPlatform 提供了方法来配置对话框的外观和行为。

    SourcepointUnifiedCmpPlatform.instance.setUiConfiguration(
      UiConfiguration(
        title: 'Consent Management',
        description: 'We value your privacy',
        acceptButtonText: 'Accept',
        rejectButtonText: 'Reject',
      ),
    );
    
  2. 保存和加载用户选择

    你可以保存用户的同意选择,并在应用重新启动时加载它们。

    await SourcepointUnifiedCmpPlatform.instance.saveConsent(consentStatus);
    var loadedConsent = await SourcepointUnifiedCmpPlatform.instance.loadConsent();
    print('Loaded Consent: $loadedConsent');
    

错误处理

在使用插件时,可能会遇到一些错误。你可以通过 try-catch 块来处理这些错误:

try {
  await SourcepointUnifiedCmpPlatform.instance.showConsentDialog();
} catch (e) {
  print('Error showing consent dialog: $e');
}
回到顶部