Flutter应用评分提示插件rate_my_app的使用

发布于 1周前 作者 h691938207 来自 Flutter

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

1 回复

更多关于Flutter应用评分提示插件rate_my_app的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter应用中使用rate_my_app插件来实现评分提示的一个示例代码案例。

首先,你需要在pubspec.yaml文件中添加rate_my_app依赖:

dependencies:
  flutter:
    sdk: flutter
  rate_my_app: ^latest_version  # 请替换为最新版本号

然后,运行flutter pub get来安装依赖。

接下来,你可以在你的Flutter应用中按照以下步骤配置和使用rate_my_app插件:

  1. 导入插件

在你的主Dart文件(通常是main.dart)或者你需要显示评分提示的页面文件中导入rate_my_app插件:

import 'package:rate_my_app/rate_my_app.dart';
  1. 初始化插件

在你的应用初始化代码中(例如在MyApp类的构造函数或者initState方法中),配置并初始化RateMyApp

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 配置RateMyApp
  RateMyApp().initialize(
    preferencesPrefix: 'rate_my_app_',
    minDays: 7, // 用户至少需要使用该应用多少天才能显示评分提示
    minLaunches: 10, // 用户至少需要启动应用多少次才能显示评分提示
    remindDays: 3, // 如果用户点击了“稍后提醒”,在多少天后再次提醒
    remindLaunches: 3, // 如果用户点击了“稍后提醒”,在多少次启动后再次提醒
    dialogTitle: '享受我们的应用吗?',
    dialogMessage: '如果你喜欢我们的应用,请花一点时间在应用商店给我们一个好评吧!',
    dialogRateButton: '去评分',
    dialogNoButton: '谢谢',
    dialogLaterButton: '稍后提醒',
    googlePlayUrl: 'market://details?id=你的应用包名', // 替换为你的应用包名
    appleAppStoreUrl: 'https://apps.apple.com/app/你的应用ID/id你的应用Apple ID', // 替换为你的应用ID和Apple ID
  );

  runApp(MyApp());
}
  1. 显示评分提示

你可以在应用的适当位置调用RateMyApp().showRateDialog()来手动触发评分提示对话框(通常不需要手动调用,因为插件会根据配置自动触发)。例如,你可以在用户完成某个重要操作后显示提示:

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  void _userCompletedImportantAction() {
    // 用户完成重要操作后显示评分提示
    RateMyApp().showRateDialog(context);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('我的应用'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: _userCompletedImportantAction,
          child: Text('完成重要操作'),
        ),
      ),
    );
  }
}

注意:在大多数情况下,你不需要手动调用showRateDialog,因为rate_my_app插件会根据你提供的配置自动管理评分提示的显示。

这个示例展示了如何在Flutter应用中使用rate_my_app插件来提示用户评分。你可以根据自己的需求调整配置参数,如最小使用天数、最小启动次数、提醒间隔等。

回到顶部