appwin_support 0.4.1
appwin_support: ^0.4.1 copied to clipboard
Flutter plugin wrapping the native Appwin Support SDK (ADR-0019).
appwin_support #
appwin_support puts customer support inside your Flutter app: a native
messenger your users open without creating an account, a help centre that
absorbs the repetitive questions, and a shared inbox on your side to answer
them.
Appwin is an engagement platform for mobile app studios. It puts an in-app support messenger, a community feed and push notifications inside your app, all rendered natively, and gives your team one dashboard to run them.
Features #
- ✅ In-app messenger, drawn natively - SwiftUI on iOS, Compose on Android
- ✅ No sign-up required - a user writes to you straight away, recognised by device
- ✅ Help centre / FAQ inside the app, written from the dashboard
- ✅ Shared inbox for your team: triage, tags, assignment, replies
- ✅ Unread badge you can read and show in your own navigation
- ✅ Configured from the dashboard - colours, wording, enabled features, no app release
- ✅ Comes with
appwin_core, so a singleconfigurecovers every product
Installation #
flutter pub add appwin_support
That is the only package to install. appwin_core comes with it as a
dependency and is re-exported, so AppwinCore is available under the same
import - do not add it yourself, or you take on a second version
constraint to keep aligned with this one.
Requirements #
| Platform | Minimum |
|---|---|
| iOS | 16.0 |
| Android | 7.0 (API 24) |
Nothing to add to your Podfile or to your Gradle repositories: the plugin
declares the native SDKs it needs, from CocoaPods and Maven Central.
Getting started #
1. Configure the foundation at launch. This step is required, and it is the only one that is: every Appwin product reads the identity and the session it sets up.
import 'package:appwin_support/appwin_support.dart'; // re-exports AppwinCore
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await AppwinCore.instance.configure(appId: 'your-app-id');
runApp(const MyApp());
}
2. Initialise Support and gate your own UI. configure checks nothing;
initialize() asks the server whether Support may open for this app. The SDK
cannot hide your help button, it does not own your navigation.
final support = await AppwinSupport.instance.initialize();
debugPrint('Appwin Support: $support'); // ready / unavailable(plan) / ...
if (support.isReady) {
// Show your help button, your menu entry, whatever opens support.
}
It answers rather than throwing: not being entitled is a normal outcome. The three products share one round trip and the verdict is cached, so being offline falls back to the last known answer instead of closing a product you pay for.
3. Open the messenger from wherever your app offers help:
await AppwinSupport.instance.presentMessenger();
Your app builds no screen. It triggers, the native side draws.
4. Attach your own user when someone signs in, so their conversations follow them across devices:
await AppwinCore.instance.identify(externalId: user.id);
await AppwinCore.instance.bootstrapSession(externalId: user.id);
Documentation #
License #
Proprietary. Use is reserved to studios holding a current Appwin contract.