install_referrer 1.2.1
install_referrer: ^1.2.1 copied to clipboard
Detect from where your application was installed (Google Play, App Store, TestFlight…)
install_referrer #
A Flutter plugin that allows you to detect how your application was installed.
Supported platforms #
- Android: ✅
- iOS: ✅
Feel free to open a PR to support new platforms.
Installation #
- Add
install_referrer: ^1.2.1to yourpubspec.yamlfile. - Import
import 'package:install_referrer/install_referrer.dart'; - Get the value by invoking the
FutureInstallReferrer.referrer
Possibles values #
Android #
| Store | Value |
|---|---|
| Google Play | InstallationAppReferrer.androidGooglePlay |
| Amazon App Store | InstallationAppReferrer.androidAmazonAppStore |
| Huawei App Gallery | InstallationAppReferrer.androidHuaweiAppGallery |
| Oppo App Market | InstallationAppReferrer.androidOppoAppMarket |
| Samsung App Shop | InstallationAppReferrer.androidSamsungAppShop |
| Vivo App Store | InstallationAppReferrer.androidVivoAppStore |
| Xiaomi App Store | InstallationAppReferrer.androidXiaomiAppStore |
| Others | InstallationAppReferrer.androidManually |
If the application was installed from a third party app (eg: GMail, Google Drive, Chrome…), it will be considered as a manual installation (InstallationAppReferrer.androidManually).
If the application was installed from a store (FDroid, Amazon App Shop…) which was not preinstalled on the device (a "non-system" app), it will also be considered as a manual installation (InstallationAppReferrer.androidManually).
If the Android application is in debug mode, it will be marked as InstallationAppReferrer.androidDebug.
iOS #
| Store | Value |
|---|---|
| App Store | InstallationAppReferrer.iosAppStore |
| Test Flight | InstallationAppReferrer.iosTestFlight |
If the iOS application is in debug mode (eg: from the simulator), it will be marked as InstallationAppReferrer.iosDebug.
Package name #
You can also get the package name (Android) or app id (iOS), by calling instead InstallReferrer.app
Widgets #
If you want to receive the result directly in a Widget, you have two choices: InstallReferrerDetectorListener and InstallReferrerDetectorBuilder :
InstallReferrerDetectorBuilder(
builder: (BuildContext context, InstallationApp? app) {
if (app == null) {
return const CircularProgressIndicator.adaptive();
} else {
return Text(
'Package name:\n${app.packageName ?? 'Unknown'}\n'
'Referrer:\n${referrerToReadableString(app.referrer)}',
textAlign: TextAlign.center,
);
}
},
);
InstallReferrerDetectorListener(
child: YourWidget(),
onReferrerAvailable: (InstallationApp? app) {
// TODO
},
);