Flutter应用评分提示插件rate_my_app的使用
Flutter应用评分提示插件rate_my_app的使用
Rate my app !
此插件允许在满足自定义条件(例如安装时间、启动次数等)时,友好地要求用户对您的应用程序进行评分。您甚至可以添加自己的条件。
Rate my app
是从 Android-Rate 中获得灵感的。
使用方法
安装
确保您的bundle标识符(在您的Info.plist
中)与iTunes Connect上的App ID匹配,以及包标识符(在您的build.gradle
中)与Google Play上的App ID匹配。如果出于任何原因它们不匹配,请参阅使用自定义标识符部分。
工作原理
Rate my app
默认构造函数需要两个主要参数:
minDays
:自首次启动应用程序以来经过的最小天数。minLaunches
:最小的应用程序启动次数。
如果上述所有条件都得到验证,则shouldOpenDialog
方法将返回true
(否则为false
)。然后你应该调用showRateDialog
,这将会显示一个原生评分对话框(如果支持的话),或者一个自定义评分提示对话框。
你也可以调用showStarRateDialog
,它会做类似的事情,但能够回退到包含星级评分条的对话框。这允许你根据评分采取自定义操作(例如,如果用户评分低于3星则打开你的应用错误报告页面,或如果他评分更高则要求他在商店页面上评价你的应用)。不过,你必须小心这些做法(请参阅这篇段落)。
示例代码
以下是RateMyApp
插件的基本示例代码。这段代码将在满足最小天数和最小启动次数后弹出一个简单的消息弹窗,默认按钮有:“评分”、“稍后再说”和“取消”,并带有默认行为。
import 'package:flutter/material.dart';
import 'package:rate_my_app/rate_my_app.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
RateMyApp rateMyApp = RateMyApp(
preferencesPrefix: 'rateMyApp_',
minDays: 0, // 在安装后的第一天显示评分弹窗
minLaunches: 5, // 在minDays过后,app启动5次后显示评分弹窗
);
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) async {
await rateMyApp.init();
if (mounted && rateMyApp.shouldOpenDialog) {
rateMyApp.showRateDialog(context);
}
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Rate My App Example'),
),
body: Center(child: Text('This is a simple example of using Rate My App.')),
),
);
}
}
如果您希望创建更复杂的例子,比如使用星星评分栏或添加自定义条件,您可以参考GitHub上的完整示例项目。
高级用法
初始化位置
你可以选择在哪里初始化Rate My App
。但是幸运的是,有一个小部件可以帮助你在整个项目中顺利通过所有这些问题:RateMyAppBuilder
。
自定义标识符
你可以使用自定义商店标识符!只需在插件初始化期间传递以下参数即可:
googlePlayIdentifier
:你的Google Play标识符(通常是包名)。appStoreIdentifier
:你的App Store标识符(通常是数字)。
自定义条件
条件是shouldOpenDialog
方法返回true
之前必须满足的东西。Rate my app
提供了三个默认条件:
MinimumDaysCondition
:允许设置在首次启动应用程序之前显示对话框所需的最小天数。MinimumAppLaunchesCondition
:允许设置在首次启动应用程序之前显示对话框所需的最小启动次数。DoNotOpenAgainCondition
:当用户点击“否”按钮时阻止再次显示对话框。
你可以通过继承Condition
类来轻松创建自定义条件。你需要实现五个方法:
readFromPreferences
:应该在此处从提供的共享偏好设置中读取条件值。saveToPreferences
:应该在此处将条件值保存到提供的共享偏好设置中。reset
:应该在此处重置条件值。isMet
:该条件是否已满足。onEventOccurred
:当插件生命周期中发生事件时调用。通常在这里你可以更新条件值。请注意,你不必覆盖此方法(尽管推荐这样做)。
然后你可以通过使用构造函数中的customConditions
(或在初始化前调用rateMyApp.conditions.add
)将自定义条件添加到Rate my app
。
广播事件
如前所述,shouldOpenDialog
方法依赖于条件。例如,当你点击“否”按钮时,这个事件会被触发,并且DoNotOpenAgainCondition
会对此作出反应,停止满足条件,因此shouldOpenDialog
将返回false
。
如果你想广播事件以模仿“否”按钮的行为,你可以使用RateMyAppNoButton
,或者直接在按钮的onTap
回调中调用callEvent
。
贡献
你有很多途径可以为这个项目做出贡献!你可以:
依赖项
此库依赖于shared_preferences
(用于存储其状态)和flutter_rating_bar
(用于showRateDialog
)。
更多关于Flutter应用评分提示插件rate_my_app的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html