Flutter营销云集成插件marketing_cloud_flutter的使用

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

Flutter营销云集成插件marketing_cloud_flutter的使用

Salesforce Marketing Cloud SDK的Flutter插件,适用于Android和iOS。

该插件是对原生SDK的封装,原生SDK可以在以下位置找到:

更多关于各平台SDK功能的信息可以在这两个仓库中找到。

使用

设置

Android: 在strings.xml中设置参数

iOS: 在info.plist中设置参数

设置联系人键

当用户启动应用或进行身份验证时。

final _marketingCloudFlutterPlugin = MarketingCloudFlutter();
await _marketingCloudFlutterPlugin.setContactKey("marcelo7");

marcelo7替换为用户的联系人键。

发布

如果您的应用通过Apple App Store或Google Play Store分发,必须遵守每个商店的数据政策和规则。在应用中使用此SDK时,必须确保以下几点:

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

import 'package:flutter/services.dart';
import 'package:marketing_cloud_flutter/marketing_cloud_flutter.dart';

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

class MyApp extends StatefulWidget {
  const MyApp({super.key});

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

class _MyAppState extends State<MyApp> {
  String _result = '未知';
  final _marketingCloudFlutterPlugin = MarketingCloudFlutter();

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

  // 平台消息是异步的,所以我们初始化在一个异步方法中。
  Future<void> initPlatformState() async {
    String result;
    // 平台消息可能会失败,所以我们使用try/catch来处理PlatformException。
    // 我们还处理消息可能返回null的情况。

    try {
      await _marketingCloudFlutterPlugin.setContactKey("marcelo7");

      _marketingCloudFlutterPlugin.onMessage().listen((event) {
        print("收到通知");
        print(event);
      });

      result = "设置联系人键为marcelo7";
    } on PlatformException {
      result = '设置联系人键失败。';
    }
    // 如果在异步平台消息还在飞行时,小部件从树中移除,我们希望丢弃回复而不是调用setState来更新我们的不存在的外观。
    if (!mounted) return;

    setState(() {
      _result = result;
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('插件示例应用'),
        ),
        body: Center(
          child: Text('结果: $_result\n'),
        ),
      ),
    );
  }
}

更多关于Flutter营销云集成插件marketing_cloud_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter营销云集成插件marketing_cloud_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter项目中集成和使用marketing_cloud_flutter插件的示例代码。这个插件通常用于与营销云平台进行交互,比如发送推送通知、跟踪用户事件等。

首先,确保你已经在Flutter项目中添加了marketing_cloud_flutter插件。你可以在pubspec.yaml文件中添加以下依赖项:

dependencies:
  flutter:
    sdk: flutter
  marketing_cloud_flutter: ^最新版本号  # 请替换为实际的最新版本号

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

接下来,你需要在你的Flutter项目中初始化并使用这个插件。以下是一个基本的示例,展示了如何初始化插件并发送一个简单的推送通知。

1. 初始化插件

在你的MainApplication类(对于Android)或AppDelegate类(对于iOS)中初始化插件。如果你使用的是默认的Flutter项目结构,你可能需要在原生代码中进行一些配置。

Android (MainApplication.java 或 MainApplication.kt)

对于Kotlin:

import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugins.GeneratedPluginRegistrant
import com.salesforce.marketingcloudsdk.MarketingCloudSdk
import com.yourapp.package.MarketingCloudPlugin  // 替换为你的包名

class MainApplication: FlutterApplication(), PluginRegistry.PluginRegistrantCallback {
    override fun onCreate() {
        super.onCreate()
        MarketingCloudSdk.init(this, "YOUR_APP_ID", "YOUR_ACCESS_TOKEN")  // 替换为你的实际值
    }

    override fun registerWith(registry: PluginRegistry?) {
        if (registry != null) {
            MarketingCloudPlugin.registerWith(registry.registrarFor("io.flutter.plugins.marketingcloudflutter.MarketingCloudFlutterPlugin"))
        }
    }

    override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
        GeneratedPluginRegistrant.registerWith(flutterEngine)
    }
}

iOS (AppDelegate.swift)

import UIKit
import Flutter
import MarketingCloudSDK  // 确保你已经导入了MarketingCloudSDK

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    MarketingCloudSDK.initialize(withAppId: "YOUR_APP_ID", accessToken: "YOUR_ACCESS_TOKEN")  // 替换为你的实际值
    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
}

2. 在Flutter中使用插件

在你的Dart代码中,你可以这样使用marketing_cloud_flutter插件:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Marketing Cloud Flutter Example'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () async {
              // 发送推送通知示例
              try {
                await MarketingCloudFlutter.sendMessage("Hello, this is a test notification!");
                print("Notification sent successfully!");
              } catch (e) {
                print("Failed to send notification: $e");
              }
            },
            child: Text('Send Notification'),
          ),
        ),
      ),
    );
  }
}

注意事项

  1. 替换占位符:确保你替换了YOUR_APP_IDYOUR_ACCESS_TOKEN为你在营销云平台获得的实际值。
  2. 权限:确保你的应用已经配置了必要的权限(如网络权限、通知权限等)。
  3. 错误处理:在实际应用中,你应该添加更多的错误处理逻辑,以确保应用的健壮性。

这个示例代码展示了如何在Flutter项目中集成marketing_cloud_flutter插件,并发送一个简单的推送通知。根据你的实际需求,你可能需要调用更多的API来与营销云平台进行交互。你可以参考插件的官方文档来获取更多详细信息和API用法。

回到顶部