tap_joy_plugin 1.0.0 copy "tap_joy_plugin: ^1.0.0" to clipboard
tap_joy_plugin: ^1.0.0 copied to clipboard

Flutter Plugin for TapJoy SDK, does NOT support TapJoy Purchases or TapJoy Push Notifications yet.

example/lib/main.dart

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

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

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

class _MyAppState extends State<MyApp> {
  TJPlacement myPlacement = TJPlacement(name: "LevelComplete");
  TJPlacement myPlacement2 = TJPlacement(name: "Placement02");
  String contentStateText = "";
  String connectionState = "";
  String iOSATTAuthResult = "";
  String balance = "";
  @override
  void initState() {
    super.initState();
    // set connection result handler
    TapJoyPlugin.shared.setConnectionResultHandler(_connectionResultHandler());
    // connect to TapJoy, all fields are required.
    TapJoyPlugin.shared.connect(
        androidApiKey: "tap_joy_android_api_key",
        iOSApiKey: "tap_joy_ios_api_key",
        debug: true);
    // set userID
    TapJoyPlugin.shared.setUserID(userID: "user_id123");
    // set contentState handler for each placement
    myPlacement.setHandler(_placementHandler());
    myPlacement2.setHandler(_placementHandler());
    // add placements.
    TapJoyPlugin.shared.addPlacement(myPlacement);
    TapJoyPlugin.shared.addPlacement(myPlacement2);
    // set currency Handlers
    TapJoyPlugin.shared.setGetCurrencyBalanceHandler(_currencyHandler());
    TapJoyPlugin.shared.setAwardCurrencyHandler(_currencyHandler());
    TapJoyPlugin.shared.setSpendCurrencyHandler(_currencyHandler());
    TapJoyPlugin.shared.setEarnedCurrencyAlertHandler(_currencyHandler());
  }

// currency handler
  TJSpendCurrencyHandler _currencyHandler() {
    TJSpendCurrencyHandler handler = (currencyName, amount, error) {
      setState(() {
        balance = "Currency Name: " +
            currencyName.toString() +
            " Amount:  " +
            amount.toString() +
            " Error:" +
            error.toString();
      });
    };
    return handler;
  }

  // connection result handler
  TJConnectionResultHandler _connectionResultHandler() {
    TJConnectionResultHandler handler = (result) {
      switch (result) {
        case TJConnectionResult.connected:
          // TODO: Handle this case.
          setState(() {
            connectionState = "Connected";
          });
          break;
        case TJConnectionResult.disconnected:
          // TODO: Handle this case.
          setState(() {
            connectionState = "Disconnected";
          });
          break;
      }
    };
    return handler;
  }

  // placement Handler
  TJPlacementHandler _placementHandler() {
    TJPlacementHandler handler = (contentState, name, error) {
      switch (contentState) {
        case TJContentState.contentReady:
          setState(() {
            contentStateText = "Content Ready for placement :  $name";
          });
          break;
        case TJContentState.contentDidAppear:
          setState(() {
            contentStateText = "Content Did Appear for placement :  $name";
          });
          break;
        case TJContentState.contentDidDisappear:
          setState(() {
            contentStateText = "Content Did Disappear for placement :  $name";
          });
          break;
        case TJContentState.contentRequestSuccess:
          setState(() {
            contentStateText = "Content Request Success for placement :  $name";
          });
          break;
        case TJContentState.contentRequestFail:
          setState(() {
            contentStateText =
                "Content Request Fail + $error for placement :  $name";
          });
          break;
        case TJContentState.userClickedAndroidOnly:
          setState(() {
            contentStateText = "Content User Clicked for placement :  $name";
          });
          break;
      }
    };
    return handler;
  }

  // get App Tracking Authentication . iOS ONLY
  Future<String> getAuth() async {
    TapJoyPlugin.shared.getIOSATTAuth().then((value) {
      switch (value) {
        case IOSATTAuthResult.notDetermined:
          setState(() {
            iOSATTAuthResult = "Not Determined";
          });
          break;
        case IOSATTAuthResult.restricted:
          setState(() {
            iOSATTAuthResult = "Restricted ";
          });
          break;
        case IOSATTAuthResult.denied:
          setState(() {
            iOSATTAuthResult = "Denied ";
          });
          break;
        case IOSATTAuthResult.authorized:
          setState(() {
            iOSATTAuthResult = "Authorized ";
          });
          break;
        case IOSATTAuthResult.none:
          setState(() {
            iOSATTAuthResult = "Error ";
          });
          break;
        case IOSATTAuthResult.iOSVersionNotSupported:
          setState(() {
            iOSATTAuthResult = "IOS Version Not Supported ";
          });
          break;
        case IOSATTAuthResult.android:
          setState(() {
            iOSATTAuthResult = "on Android";
          });
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('TapJoy Flutter'),
        ),
        body: Center(
          child: Column(
            children: [
              Text("Connection State : $connectionState"),
              ElevatedButton(
                child: Text("get iOS App Tracking Auth"),
                onPressed: getAuth,
              ),
              Text("IOS Auth Result : $iOSATTAuthResult"),
              ElevatedButton(
                child: Text("request content for Placement 001"),
                onPressed: myPlacement.requestContent,
              ),
              ElevatedButton(
                child: Text("request content for Placement 002"),
                onPressed: myPlacement2.requestContent,
              ),
              Text("Content State : $contentStateText"),
              ElevatedButton(
                child: Text("show Placement 001"),
                onPressed: myPlacement.showPlacement,
              ),
              ElevatedButton(
                child: Text("show Placement 002"),
                onPressed: myPlacement2.showPlacement,
              ),
              ElevatedButton(
                child: Text("get balance"),
                onPressed: TapJoyPlugin.shared.getCurrencyBalance,
              ),
              ElevatedButton(
                child: Text("award balance"),
                onPressed: () {
                  TapJoyPlugin.shared.awardCurrency(15);
                },
              ),
              ElevatedButton(
                child: Text("spend balance"),
                onPressed: () {
                  TapJoyPlugin.shared.spendCurrency(5);
                },
              ),
              Text("Balance Response : $balance"),
            ],
          ),
        ),
      ),
    );
  }
}
6
likes
140
points
53
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Flutter Plugin for TapJoy SDK, does NOT support TapJoy Purchases or TapJoy Push Notifications yet.

Repository (GitHub)
View/report issues

License

BSD-3-Clause (license)

Dependencies

collection, flutter

More

Packages that depend on tap_joy_plugin

Packages that implement tap_joy_plugin