Flutter插件refluttersdk的介绍与使用方法

Flutter插件refluttersdk的介绍与使用方法

refluttersdk简介

企业通常使用多种离线和在线沟通触点,并在这些触点上拥有多个身份。Resulticks分析是一种增值服务,用于跟踪和报告网站和原生应用的流量与行为。通过集成Resulticks分析模块,可以实现广泛的服务,例如用户旅程报告、客户数据增强以及创建或触发活动。生成分析服务涉及使用软件开发工具包(SDK)进行数据捕获。Resulticks应用程序生成SDK代码片段并将其嵌入到网站和移动应用的目标落地页中。

带有Flutter的Resulticks SDK允许将推送通知服务集成到Flutter应用中,并在Android和iOS平台上启用与分析相关的数据捕获。该SDK跨不同跨平台应用工作,并通过特定识别为iOS或Android的API调用,在两个平台上提供相同代码的支持。

文档介绍了从Resulticks SDK到Flutter的基础知识。


refluttersdk的潜在用途示例

以下示例展示了如何使用refluttersdk插件来实现各种功能,包括推送通知管理、事件追踪、用户注册、表单数据捕获等。

示例代码

import 'dart:async';
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:refluttersdk/refluttersdk.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();

  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'ReFlutterSDK Example',
      theme: ThemeData(primarySwatch: Colors.blue),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);

  final String title;

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final _refluttersdkPlugin = Refluttersdk();

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

  void _setupDeepLinks() {
    _refluttersdkPlugin.initWebSDK("./sw.js"); // 初始化Web SDK
    _refluttersdkPlugin.listenDeeplinkData().listen((data) {
      debugPrint('Deep Link Data: $data');
      Map<String, dynamic> parsedData = jsonDecode(data);
      if (parsedData.containsKey('customParams')) {
        String screenName = parsedData['customParams']['screenName'];
        String data = parsedData['customParams']['data'];
        _navigateToScreen(screenName, data);
      }
    });
  }

  void _setupNotifications() async {
    FirebaseMessaging messaging = FirebaseMessaging.instance;
    String? token = await messaging.getToken();
    debugPrint('FCM Token: $token');

    _refluttersdkPlugin.updatePushToken(token!); // 更新推送令牌
  }

  void _navigateToScreen(String screenName, String data) {
    switch (screenName) {
      case "Page1":
        Navigator.push(context, MaterialPageRoute(builder: (_) => const Page1()));
        break;
      case "Page2":
        Navigator.push(context, MaterialPageRoute(builder: (_) => const Page2()));
        break;
      default:
        debugPrint("Unknown Screen Name: $screenName");
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('ReFlutter SDK Example')),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          children: [
            ElevatedButton(
              onPressed: () {
                _refluttersdkPlugin.sdkRegisteration({
                  "userUniqueId": "user@example.com",
                  "name": "John Doe",
                  "email": "user@example.com",
                  "phone": "1234567890",
                });
              },
              child: const Text('Register Device User'),
            ),
            ElevatedButton(
              onPressed: () {
                _refluttersdkPlugin.customEvent("User Logged In");
              },
              child: const Text('Track Custom Event'),
            ),
            ElevatedButton(
              onPressed: () {
                _refluttersdkPlugin.formDataCapture({
                  "Name": "Jane Doe",
                  "EmailID": "jane@example.com",
                  "MobileNo": 9876543210,
                  "Gender": "Female",
                  "formid": 102,
                  "apikey": "your-api-key",
                  "City": "Bangalore",
                });
              },
              child: const Text('Capture Form Data'),
            ),
            ElevatedButton(
              onPressed: () {
                _refluttersdkPlugin.appConversion();
              },
              child: const Text('Track App Conversion'),
            ),
          ],
        ),
      ),
    );
  }
}

class Page1 extends StatelessWidget {
  const Page1({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Page 1')),
      body: const Center(child: Text('This is Page 1')),
    );
  }
}

class Page2 extends StatelessWidget {
  const Page2({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Page 2')),
      body: const Center(child: Text('This is Page 2')),
    );
  }
}

更多关于Flutter插件refluttersdk的介绍与使用方法的实战教程也可以访问 https://www.itying.com/category-92-b0.html

回到顶部