Need help with app_review?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

fluttercommunity
195 Stars 51 Forks MIT License 93 Commits 9 Opened issues

Description

App Review - Request and Write Reviews and Open Store Listing for Android and iOS in Flutter. Maintainer: @rodydavis

Services available

!
?

Need anything else?

Contributors list

Flutter Community: app_review

Buy Me A Coffee Donate github pages GitHub stars

app_review

alt text

Online Demo: https://fluttercommunity.github.io/app_review/

Description

Flutter Plugin for Requesting and Writing Reviews in Google Play and the App Store. Apps have to be published for the app to be found correctly.

How To Use

It's important to note that the App ID must match the App ID in Google Play and iTunes Connect. This can be changed in the Info.plist on iOS and app/build.gradle on Android. You will use this App ID for other services like Firebase, Admob and publishing the app.

Android

Opens In App Review but only if Play Services are installed on the device and the App is downloaded through the Play Store. Check out the [official documentation].

iOS

iOS manages the pop-up requesting review within an app. You can call the code through

AppReview.requestReview
and if the user has "rate in apps" turned on, iOS will send "the request for the review" pop up. This is the required way for requesting reviews after iOS 10.3.

In debug mode it will always display. In apps through TestFlight, the

AppReview.requestReview
does nothing.
import 'dart:io';
import 'package:app_review/app_review.dart';
import 'package:flutter/material.dart';

@override void initState() { super.initState(); if (Platform.isIOS) { AppReview.requestReview.then((onValue) { print(onValue); }); } }

Example

import 'package:app_review/app_review.dart';
import 'package:flutter/material.dart';

void main() => runApp(new MyApp());

class MyApp extends StatefulWidget { @override _MyAppState createState() => new _MyAppState(); }

class _MyAppState extends State { @override initState() { super.initState(); AppReview.getAppID.then((onValue) { setState(() { appID = onValue; }); print("App ID" + appID); }); }

String appID = ""; String output = "";

@override Widget build(BuildContext context) { return new MaterialApp( home: new Scaffold( appBar: new AppBar( title: new Text('App Review'), ), body: new SingleChildScrollView( child: new ListBody( children: [ new Container( height: 40.0, ), new ListTile( leading: new Icon(Icons.info), title: new Text('App ID'), subtitle: new Text(appID), onTap: () { AppReview.getAppID.then((onValue) { setState(() { output = onValue; }); print(onValue); }); }, ), new Divider( height: 20.0, ), new ListTile( leading: new Icon( Icons.shop, ), title: new Text('View Store Page'), onTap: () { AppReview.storeListing.then((onValue) { setState(() { output = onValue; }); print(onValue); }); }, ), new Divider( height: 20.0, ), new ListTile( leading: new Icon( Icons.star, ), title: new Text('Request Review'), onTap: () { AppReview.requestReview.then((onValue) { setState(() { output = onValue; }); print(onValue); }); }, ), new Divider( height: 20.0, ), new ListTile( leading: new Icon( Icons.note_add, ), title: new Text('Write a New Review'), onTap: () { AppReview.writeReview.then((onValue) { setState(() { output = onValue; }); print(onValue); }); }, ), new Divider( height: 20.0, ), new ListTile( title: new Text(output), ), ], ), ), ), ); } }

What is onValue value?

Just a sanity check to make sure there were no errors.

Android

You could store a timestamp to know when to call again.

iOS

It doesnt really matter.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.