appflow_flutter 0.0.3 copy "appflow_flutter: ^0.0.3" to clipboard
appflow_flutter: ^0.0.3 copied to clipboard

outdated

An AppFlow Flutter project.

Flutter set up instructions #

Instructions For Installing Appflow SDK For Flutter

**Notice ** Our plugin relies on Appflow SDK, so before you use the plugin, please go to Appflow official website to install and configure Appflow SDK for Android and IOS.

Requirements

Minimum target: Android 21+

Installation

To use this plugin, add appflow_flutter as a dependency in your pubspec.yaml file (and run an implicit dart pub get):

dependencies:
  appflow_flutter: ^0.0.2

Alternatively run this command:

flutter pub add appflow_flutter

Import Appflow

You should now be able to import appflow_flutter

import 'package:appflow_flutter/appflow_flutter.dart';

**Initialize **

Add the following to your App

 @override
  void initState() {
    super.initState();
    AppFlowFlutter().setup();
  }

Set user id (optional) You can set the user id in the following way

 @override
  void initState() {
    super.initState();
    AppFlowFlutter().setup(appUserId: "your_user_id");
  }

Enable SDK log (optional) You can enable SDK log output before initializing the SDK

 @override
  void initState() {
    super.initState();
    AppFlowFlutter().setup(appUserId: "your_user_id",logEnable: true);
  }

Events

If you want to receive more events than usual: You can send statistics events to Appflow backend in the following ways

AppFlowFlutter().sendEvent({String? eventName, Map<String, String>? attributes});

Example

sendEvent() async {
    try {
      var map = <String,String>{};
      map["test"] = "123";
      map["test2"] = "abc";
      await _appflowFlutterPlugin.sendEvent(eventName: "test",attributes: map);
    } catch (e) {
    }
  }

Purchases

This part of SDK is important for subscriptions information Ready to work a、Configure product information in Google Play

b、Add product information in dash.appflow.ai

Displaying Products To fetch the products, you have to call method:

AppFlowFlutter().getSkuDetails({List<String>? skus});

Example

getSkuInfo() async {
    try{
      var list = ["yearly_v1"];
      var data = (await _appflowFlutterPlugin.getSkuDetails(skus: list));
      packageJson = data!["yearly_v1"];
    }catch(e){
    }
  }

Making Purchases

Making Purchases, you have to call method:

 AppFlowFlutter().purchasePackage(String skuDetail);

Example

purchasePackage() async {
    if (packageJson.isEmpty) {
      showConfirmDialog1("error", "please invoke getProductDetail method before invoke purchasePackage");
      return;
    }
    try {
      var data = await _appflowFlutterPlugin.purchasePackage(packageJson);
      print(data);
    } catch (e, stack) {
      showConfirmDialog1("error", e.toString());
    }
  }

Subscription Status

Get the subscription status of a product, you have to call method:

AppFlowFlutter().getSubscriberInfo();

Example

 getSubscriberInfo() async {
    try{
      var data = await _appflowFlutterPlugin.getSubscriberInfo();
    }catch(e){
      showConfirmDialog1("error", e.toString());
    }

  }

Upgrade/Downgrade product

To upgrade/downgrade a product, you have to call method:

AppFlowFlutter().upgradeInfo(
      String oldSku, String skuDetail, int? prorationMode);

Example

  upgradeProduct() async {
    try {
      var old = "yearly_v1";
      var skuDetailJson = "";
      var data = await _appflowFlutterPlugin.upgradeInfo(
          old, skuDetailJson, ProrationMode.DEFERRED);
    } on PlatformException {}
  }

User info

You can send user information to Appflow backend in the following ways

AppFlowFlutter().uploadUserInfo(
      {String? userName,
      String? phone,
      int? age,
      String? email,
      GenderType? gender,
      Map<String, dynamic>? attribute});

Example

upgradeUserInfo() async {
    try {
      var map = <String, String>{};
      map["test"] = "123";
      map["test2"] = "abc";
      var data = await _appflowFlutterPlugin.uploadUserInfo(
          userName: "appflow",
          phone: "1233",
          age: 11,
          email: "1234@gmail.com",
          gender: GenderType.female,
          attribute: map);
    } on PlatformException {}
  }
1
likes
0
points
37
downloads

Publisher

unverified uploader

Weekly Downloads

An AppFlow Flutter project.

Homepage

License

unknown (license)

Dependencies

flutter, freezed_annotation, json_annotation, plugin_platform_interface

More

Packages that depend on appflow_flutter