flutter_1flow_sdk 1.2.6
flutter_1flow_sdk: ^1.2.6 copied to clipboard
1Flow flutter SDK.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:flutter_1flow_sdk/flutter_1flow_sdk.dart';
void main() {
runApp(MyApp());
String projectKey = "<Your_1Flow_Project_Key>";
OneFlow.configure(projectKey);
OneFlow.useFont(fontFamily: "Courier New"); //For iOS Only
OneFlow.useFont(path: "fonts/pacifico.ttf"); // For Android Only
OneFlow.useFont(fontFamily: "Courier New", path: "fonts/pacifico.ttf"); // For iOS & Android Both
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
void initState() {
super.initState();
OneFlow.methodchannel.setMethodCallHandler(oneFlowSurveyFinishNotificationHandler);
initPlatformState();
}
Future<void> oneFlowSurveyFinishNotificationHandler(MethodCall call) async {
final String method = call.method;
dynamic argument = call.arguments;
print("oneFlowSurveyFinishNotificationHandler");
switch(method) {
case "oneFlowSurveyFinishNotification": {
print("oneFlowSurveyFinishNotification: $argument");
}
break;
default: {
print("Invalid choice");
}
break;
}
}
void recordEvent(){
try {
OneFlow.recordEventName('first_open', null);
print('recordEventName: Done');
} on PlatformException {
print('recordEventName: error occured');
}
}
// Platform messages are asynchronous, so we initialize in an async method.
Future<void> initPlatformState() async {
if (!mounted) return;
setState(() {
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Center(
child: TextButton(onPressed: () {recordEvent();}, child: Text("Record Event")),
),
),
);
}
}