rokt_sdk 5.0.0 copy "rokt_sdk: ^5.0.0" to clipboard
rokt_sdk: ^5.0.0 copied to clipboard

Rokt Mobile SDK to integrate ROKT Api into flutter applications.

example/lib/main.dart

import 'dart:io' show Platform;

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'dart:convert';

import 'package:rokt_sdk/rokt_sdk.dart';
import 'assets/constants.dart' as constants;

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

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

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

class _MyAppState extends State<MyApp> {
  final tagIdController = TextEditingController(text: constants.defaultTagId);
  final viewNameController =
      TextEditingController(text: constants.defaultViewName);
  final attributesController = TextEditingController(
      text: Platform.isIOS
          ? constants.iOSAttributes
          : constants.androidAttributes);
  final stripeKeyController = TextEditingController(text: "");
  Map<int, String> placeholders = {};
  static const EventChannel roktEventChannel = EventChannel('RoktEvents');

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

  void receiveRoktEvent() {
    try {
      roktEventChannel.receiveBroadcastStream().listen(
        (dynamic event) {
          debugPrint("rokt_sdk _receiveRoktEvent $event ");
        },
        onError: (error) {
          debugPrint("rokt_sdk event channel error: $error");
        },
      );
    } catch (e) {
      debugPrint("rokt_sdk event channel setup failed: $e");
    }
  }

  Map<String, String> getAttributes() {
    return Map<String, String>.from(json.decode(attributesController.text));
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
            appBar: AppBar(
              title: const Text('Plugin example app'),
            ),
            body: GestureDetector(
              onTap: () {
                FocusScope.of(context).requestFocus(FocusNode());
              },
              child: CustomScrollView(shrinkWrap: true, slivers: <Widget>[
                SliverPadding(
                  padding: const EdgeInsets.all(20.0),
                  sliver: SliverList(
                    delegate: SliverChildListDelegate(
                      <Widget>[
                        Row(
                            crossAxisAlignment: CrossAxisAlignment.start,
                            children: [
                              Expanded(
                                  child: TextField(
                                      controller: tagIdController,
                                      textAlign: TextAlign.center)),
                              TextButton(
                                child: const Text('Initialize'),
                                onPressed: () {
                                  RoktSdk.initialize(tagIdController.text,
                                      appVersion: '1.0.0');
                                },
                              )
                            ]),
                        TextField(
                            controller: attributesController,
                            keyboardType: TextInputType.multiline,
                            maxLines: null),
                        Row(
                            crossAxisAlignment: CrossAxisAlignment.start,
                            children: [
                              Expanded(
                                  child: TextField(
                                      controller: viewNameController,
                                      textAlign: TextAlign.center,
                                      decoration: const InputDecoration(
                                          hintText: "View Name"))),
                              TextButton(
                                  child: const Text('Select Placements'),
                                  onPressed: () {
                                    RoktSdk.selectPlacements(
                                        viewName: viewNameController.text,
                                        attributes: getAttributes());
                                  })
                            ]),
                        const Divider(),
                        const Text("Shoppable Ads (iOS only)",
                            style: TextStyle(fontWeight: FontWeight.bold)),
                        Row(
                          children: [
                            Expanded(
                              child: TextField(
                                controller: stripeKeyController,
                                decoration: const InputDecoration(
                                    hintText: "Stripe Key (pk_...)"),
                              ),
                            ),
                            TextButton(
                              child: const Text('Register'),
                              onPressed: () {
                                RoktSdk.registerPaymentExtension(
                                  extensionType: 'stripe',
                                  config: {
                                    'stripeKey': stripeKeyController.text,
                                  },
                                );
                                debugPrint(
                                    "rokt_sdk payment extension registered");
                              },
                            ),
                          ],
                        ),
                        TextButton(
                          child: const Text('Shoppable Ads'),
                          onPressed: () {
                            RoktSdk.selectShoppableAds(
                              viewName: viewNameController.text,
                              attributes: getAttributes(),
                            );
                            debugPrint("rokt_sdk shoppable ads triggered");
                          },
                        ),
                        const Divider(),
                        const Text("Location 1"),
                        const RoktWidget(
                            key: ValueKey('widget1'),
                            placeholderName: "Location1"),
                        const Text("Location 2"),
                        RoktWidget(
                            key: const ValueKey('widget2'),
                            placeholderName: "Location2",
                            onWidgetCreated: () {
                              debugPrint("rokt_widget widget is created");
                            }),
                        const Text("The end")
                      ],
                    ),
                  ),
                ),
              ]),
            )));
  }
}
8
likes
140
points
933
downloads

Documentation

API reference

Publisher

verified publisherrokt.com

Weekly Downloads

Rokt Mobile SDK to integrate ROKT Api into flutter applications.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter

More

Packages that depend on rokt_sdk

Packages that implement rokt_sdk