Flutter集成Rokt服务插件rokt_sdk的使用

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

Flutter集成Rokt服务插件rokt_sdk的使用

概述

rokt_sdk 是一个用于在Flutter应用程序中集成Rokt服务的插件。通过这个插件,您可以为您的移动应用添加Rokt的功能,以提升用户体验和增加商业价值。

初始化与配置

添加依赖

pubspec.yaml 文件中添加以下依赖:

dependencies:
  flutter:
    sdk: flutter

  rokt_sdk: ^4.0.0-alpha.3

Android 配置

  1. android/app/build.gradle 中设置 minSdkVersion 和启用 multidex
android {
    defaultConfig {
        minSdkVersion 21
        multidexEnabled true
    }
}
  1. 包含 appcompat 依赖,并确保主题继承自 AppCompat 主题:
implementation 'androidx.appcompat:appcompat:x.x.x'
<style name="NormalTheme" parent="Theme.AppCompat.DayNight.DarkActionBar"/>

iOS 配置

Rokt iOS SDK 支持 iOS 版本 10 及以上。

更新SDK

为了更新SDK,请执行以下步骤:

  1. 运行 flutter clean
  2. 删除 /ios/Pods
  3. 删除 /ios/Podfile.lock
  4. 运行 flutter pub get
  5. ios 文件夹内运行 pod install

初始化 Rokt SDK

在应用程序启动时初始化 Rokt SDK:

import 'package:rokt_sdk/rokt_sdk.dart';

void initializeRokt() {
    // Replace the integration test tag ID (222) with your unique Rokt Tag ID
    // Replace 1.0.0 with the application version
    RoktSdk.initialize('222', appVersion: '1.0.0');
}

使用示例

Overlay Placements

在需要的地方调用 Rokt SDK 并传递用户属性:

import 'package:rokt_sdk/rokt_sdk.dart';

void executeRoktOverlay() {
    RoktSdk.execute(
        viewName: "RoktExperience",
        attributes: {
            "email": "j.smith@example.com",
            "firstname": "Jenny",
            "lastname": "Smith",
            "mobile": "(555)867-5309",
            "postcode": "90210",
            "country": "US"
        },
        config: RoktConfig(),
        onLoad: () {
            print("Rokt placement loaded");
        },
        onUnLoad: () {
            print("Rokt placement unloaded");
        },
        onShouldShowLoadingIndicator: () {
            print("Show loading indicator");
        },
        onShouldHideLoadingIndicator: () {
            print("Hide loading indicator");
        }
    );
}

Embedded Placements

在视图中添加 RoktWidget 并在创建后显示它:

import 'package:rokt_sdk/rokt_sdk.dart';

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

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  void showWidget() {
      RoktSdk.execute(
          viewName: "RoktExperience",
          attributes: {
              "email": "j.smith@example.com",
              "firstname": "Jenny",
              "lastname": "Smith",
              "mobile": "(555)867-5309",
              "postcode": "90210",
              "country": "US"
          },
          config: RoktConfig(),
          onLoad: () {
              print("Rokt placement loaded");
          },
          onUnLoad: () {
              print("Rokt placement unloaded");
          },
          onShouldShowLoadingIndicator: () {
              print("Show loading indicator");
          },
          onShouldHideLoadingIndicator: () {
              print("Hide loading indicator");
          }
      );
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
      return MaterialApp(
          home: Scaffold(
              appBar: AppBar(title: Text('Plugin example app')),
              body: Column(children: [
                  const Text("Location 1"),
                  const RoktWidget(placeholderName: "Location1"),
                  const Text("Location 2"),
                  RoktWidget(
                      placeholderName: "Location2",
                      onWidgetCreated: () {
                          showWidget();
                      }
                  ),
                  const Text("The end")
              ])
          )
      );
  }
}

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

1 回复

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


在Flutter项目中集成并使用Rokt服务插件rokt_sdk,你可以按照以下步骤进行。以下是一个基本的示例代码,展示了如何在Flutter应用中集成并使用rokt_sdk插件。

1. 添加依赖

首先,在你的pubspec.yaml文件中添加rokt_sdk的依赖:

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

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

2. 配置iOS和Android

根据rokt_sdk的官方文档,你可能需要在iOS和Android平台上进行一些额外的配置。这些配置通常涉及在Info.plistAndroidManifest.xml等文件中添加权限或配置信息。由于这些信息可能随着SDK版本的更新而变化,请参考rokt_sdk的最新官方文档进行配置。

3. 初始化Rokt SDK

在你的Flutter应用的入口文件(通常是main.dart)中,初始化Rokt SDK。这通常涉及设置API密钥和其他必要的配置信息。

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // 初始化Rokt SDK
    _initRoktSdk();
    return MaterialApp(
      title: 'Flutter Rokt SDK Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }

  void _initRoktSdk() async {
    try {
      // 替换为你的API密钥
      String apiKey = 'YOUR_API_KEY';
      await RoktSdk.initialize(apiKey: apiKey);
      print('Rokt SDK initialized successfully.');
    } catch (e) {
      print('Failed to initialize Rokt SDK: $e');
    }
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Rokt SDK Demo'),
      ),
      body: Center(
        child: Text('Check the console for Rokt SDK initialization status.'),
      ),
    );
  }
}

4. 使用Rokt SDK的功能

一旦Rokt SDK初始化成功,你就可以使用它提供的功能了。以下是一个简单的示例,展示了如何使用Rokt SDK进行某项操作(假设是获取用户信息,具体功能请参考SDK文档):

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

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  String userInfo = '';

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Rokt SDK Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text('User Info:'),
            Text(
              userInfo,
              style: TextStyle(fontSize: 18),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _getUserInfo,
              child: Text('Get User Info'),
            ),
          ],
        ),
      ),
    );
  }

  void _getUserInfo() async {
    try {
      // 假设有一个获取用户信息的方法
      User user = await RoktSdk.getUserInfo();
      setState(() {
        userInfo = 'Name: ${user.name}, Email: ${user.email}';
      });
    } catch (e) {
      setState(() {
        userInfo = 'Failed to get user info: $e';
      });
    }
  }
}

注意:上面的RoktSdk.getUserInfo()方法是一个假设的方法,实际的Rokt SDK可能提供不同的API来获取用户信息。请参考rokt_sdk的官方文档来了解具体的API和使用方法。

结论

以上是一个基本的Flutter集成rokt_sdk的示例。在实际项目中,你可能需要根据rokt_sdk的最新文档和API来调整代码。确保定期查看SDK的更新日志和文档,以便及时了解新功能和变更。

回到顶部