keep your app users up to date on their devices
With the help of a this Flutter plugin.
- Check if a user has the most recent installation of your app.
- Display a message to the user with a link to the relevant app store page.
See more at the Dart Packages page.
Add app_update_alert
as a dependency in your pubspec.yaml
file.
Run this command:
flutter pub add app_update_alert
This will add a line like below to your package's pubspec.yaml
dependencies:
app_update_alert: ^1.5.5
run an implicit flutter pub get
Create an instance of AppUpdate
in main.dart
(or wherever your app is initialised).
@override
void initState() {
super.initState();
final appUpdate = AppUpdate(
iosPackageName: 'com.your.IOSpackage',
androidPackageName: 'com.your.Androidpackage',
iOSAppStoreCountry: 'in'
);
}
Your Flutter package identification will be used by the plugin automatically to search the app store.
You can overwrite this identity if your app uses a different one on the Google Play Store or Apple App Store by giving values for androidPackageName
and/or iosPackageName.
For iOS: You must specify iOSAppStoreCountry
to the two-letter country code of the Software Store you want to search if your app is only accessible outside the India. A list of ISO Country Codes can be found at http://en.wikipedia.org/wiki/ISO 3166-1 alpha-2.
Calling showUpdateAlert
with your app's BuildContext
and other optional parameters which will check if the app can be updated, and will automatically display a platform-specific alert that the user can use to go to the app store.
@override
void initState() {
super.initState();
final appUpdate = AppUpdate(
iosPackageName: 'com.your.IOSpackage',
androidPackageName: 'com.your.Androidpackage',
iOSAppStoreCountry: 'in'
);
//showUpdateAlert
appUpdate.showUpdateAlert(context: context);
}
Note: The parameters such as iosPackageName
, androidPackageName
are non-mandatory fields and can only be overwritten if the app package's differ from store versions.
To change the appearance and behavior of the update dialog, you can showUpdateAlert
optionally provide dialogTitle: String
, dialogText: String
, updateButtonText: String
, allowDismissal: bool
,
dismissButtonText: String
, and dismissAction: VoidCallback
parameters.
appUpdate.showUpdateAlert(context: context,
dialogTitle: dialogTitle,
dialogText: dialogText,
updateButtonText: updateButtonText,
allowDismissal: true,
dismissButtonText: dismissButtonText,
dismissAction: dismissAction
);
To change the appearance and behavior of the update dialog, you can showUpdateAlert
optionally provide dialogTitle: String
, dialogText: String
, updateButtonText: String
, allowDismissal: bool
, parameters.
appUpdate.showUpdateAlert(context: context,
dialogTitle: dialogTitle,
dialogText: dialogText,
updateButtonText: updateButtonText,
allowDismissal: false,
);
When dialog dismissal is allowed and to perform/ execute any functions on dismissButtonText
or on dialog dismiss use the dismissAction
.
void callBackFunction() {
print('dismissAction called');
}
appUpdate.showUpdateAlert(context: context,
dialogTitle: dialogTitle,
dialogText: dialogText,
updateButtonText: updateButtonText,
allowDismissal: true,
dismissButtonText: dismissButtonText,
dismissAction: callBackFunction()
);
Calling forceAppVersion
with your app's greater version will check if the app can be updated, and will automatically display a platform-specific alert that the user can use to go to the app store.
final appUpdate = AppUpdate(
iosPackageName: 'com.your.IOSpackage',
androidPackageName: 'com.your.Androidpackage',
iOSAppStoreCountry: 'in',
forceAppVersion: '1.0.1'
);
ANDROID - ✅ Yes
IOS - ✅ Yes
LINUX - ❌ No
MACOS - ❌ No
WEB - ❌ No
WINDOWS - ❌ No
If you find this library useful, please consider starring this repository from the top of this page.
Copyright [2022] [Vinod Baste]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.