tenjin_plugin 1.3.0-beta.1 copy "tenjin_plugin: ^1.3.0-beta.1" to clipboard
tenjin_plugin: ^1.3.0-beta.1 copied to clipboard

A Flutter plugin to Tenjin SDK

example/lib/main.dart

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:tenjin_plugin/tenjin_sdk.dart';

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

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    TenjinSDK.instance.init(apiKey: 'YWZKFWDZEREQCFMF3DST3AYHZPCC9MWV');
    TenjinSDK.instance.optIn();
    TenjinSDK.instance.registerAppForAdNetworkAttribution();
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Tenjin SDK')),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.spaceEvenly,
            children: [
              TextButton(
                onPressed: () => TenjinSDK.instance.connect(),
                child: Text('connect'),
              ),
              TextButton(
                onPressed: () =>
                    TenjinSDK.instance.eventWithName('swipe_right'),
                child: Text('eventWithName'),
              ),
              TextButton(
                onPressed: () =>
                    TenjinSDK.instance.eventWithNameAndValue('item', 100),
                child: Text('eventWithNameAndValue'),
              ),
              if (Platform.isIOS)
                TextButton(
                  onPressed: () {
                    TenjinSDK.instance.requestTrackingAuthorization();
                  },
                  child: Text('Request Tracking Authorization'),
                ),
              TextButton(
                onPressed: () {
                  TenjinSDK.instance.transactionWithReceipt(
                    productId: 'productId',
                    currencyCode: 'USD',
                    quantity: 1,
                    unitPrice: 3.80,
                    iosReceipt: 'iosReceipt',
                    iosTransactionId: 'transactionId',
                    androidDataSignature: 'androidDataSignature',
                    androidPurchaseData: 'androidPurchaseData',
                  );
                },
                child: Text('Transaction with Receipt'),
              ),
              TextButton(
                onPressed: () {
                  TenjinSDK.instance.transaction('productId', 'USD', 1, 3.80);
                },
                child: Text('Transaction'),
              ),
              TextButton(
                onPressed: () {
                  TenjinSDK.instance.updatePostbackConversionValue(3);
                },
                child: Text('Update SKAN'),
              ),
              TextButton(
                onPressed: () {
                  TenjinSDK.instance.setCustomerUserId('test_user_id');
                },
                child: Text('Set customer userId'),
              ),
              TextButton(
                onPressed: () async {
                  try {
                    String? userId = await TenjinSDK.instance.getCustomerUserId();
                    if (userId != null) {
                      print(userId);
                    } else {
                      print('Failed to get customer user id');
                    }
                  } catch (e) {
                    print('Error: $e');
                  }
                },
                child: Text('Get user id'),
              ),
              TextButton(
                onPressed: () {
                  // Sample subscription data
                  if (Platform.isIOS) {
                    TenjinSDK.instance.subscription(
                      productId: 'com.example.premium_monthly',
                      currencyCode: 'USD',
                      unitPrice: 9.99,
                      iosTransactionId: '2000000123456789',
                      iosOriginalTransactionId: '2000000123456789',
                      iosReceipt: 'dGVzdF9yZWNlaXB0X2RhdGE=',
                      iosSKTransaction: '''
                        {
                          "id": 2000000123456789,
                          "originalID": 2000000123456789,
                          "productID": "com.example.premium_monthly",
                          "type": "Auto-Renewable Subscription",
                          "purchaseDate": "2024-11-05T10:30:00Z",
                          "originalPurchaseDate": "2024-11-05T10:30:00Z",
                          "expirationDate": "2024-12-05T10:30:00Z"
                        }''',
                    );
                    print('✅ Sent iOS subscription with SK2 transaction data');
                  } else if (Platform.isAndroid) {
                    TenjinSDK.instance.subscription(
                      productId: 'com.example.premium_monthly',
                      currencyCode: 'USD',
                      unitPrice: 9.99,
                      androidPurchaseToken: 'test_purchase_token',
                      androidPurchaseData: '{"productId":"com.example.premium_monthly"}',
                      androidDataSignature: 'test_signature',
                    );
                    print('✅ Sent Android subscription data');
                  }
                },
                child: Text('Test Subscription (Dummy Data)'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}