diff --git a/README.md b/README.md index e3b6fd1..cabde3c 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ To use this plugin, add `iterable_flutter` as a [dependency in your pubspec.yaml | `setUserId` | X | X | | | `registerForPush` | X | X | | | `updateUser` | X | X | | -| `signOut` | X | | | +| `signOut` | X | X | | | `track` | X | X | | | `setNotificationOpenedHandler` | X | X | | diff --git a/example/lib/main.dart b/example/lib/main.dart index cd81d41..816fa67 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -57,6 +57,10 @@ class _MyAppState extends State { await IterableFlutter.track(event); } + Future signOut() async { + await IterableFlutter.signOut(); + } + /// Call it to register device for current user if calling setEmail or /// setUserId after the app has already launched /// (for example, when a new user logs in) @@ -131,6 +135,13 @@ class _MyAppState extends State { ), ), SizedBox(height: 20), + ElevatedButton( + onPressed: () { + signOut(); + }, + child: Text('Sign Out'), + ), + SizedBox(height: 20), Text("Push: $pushData"), Text("Body: ${pushData['body']}"), Text("Title: ${pushData['title']}"), diff --git a/ios/Classes/SwiftIterableFlutterPlugin.swift b/ios/Classes/SwiftIterableFlutterPlugin.swift index 8925ff8..0e37546 100644 --- a/ios/Classes/SwiftIterableFlutterPlugin.swift +++ b/ios/Classes/SwiftIterableFlutterPlugin.swift @@ -54,6 +54,10 @@ public class SwiftIterableFlutterPlugin: NSObject, FlutterPlugin, UNUserNotifica case "registerForPush": registerForPushNotifications() + result(nil) + case "signOut": + signOut() + result(nil) default: result(FlutterMethodNotImplemented) @@ -74,6 +78,10 @@ public class SwiftIterableFlutterPlugin: NSObject, FlutterPlugin, UNUserNotifica } return [:]; } + + func signOut() { + IterableAPI.disableDeviceForCurrentUser() + } public func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [AnyHashable : Any] = [:]) -> Bool { UNUserNotificationCenter.current().delegate = self