Flutter应用评分请求插件app_review_plus的使用
Flutter应用评分请求插件app_review_plus的使用
描述
app_review_plus
是 Flutter Community: app_review
的一个分支,更新了依赖项。这是一个用于在 Google Play 和 App Store 中请求和撰写应用评分的 Flutter 插件。需要注意的是,应用必须已经发布,才能正确找到应用。
如何使用
重要提示
App ID 必须与 Google Play 和 iTunes Connect 中的 App ID 匹配。这可以在 iOS 的 Info.plist
文件和 Android 的 app/build.gradle
文件中设置。你将使用这个 App ID 与其他服务(如 Firebase、Admob 和发布应用)进行集成。
Android
在设备上安装了 Play Services 并且应用是从 Play Store 下载的情况下,会打开应用内评分页面。详情请参阅 官方文档。
iOS
iOS 管理应用内的评分请求弹窗。你可以通过 AppReview.requestReview
调用代码,如果用户开启了“应用内评分”,iOS 将会显示评分请求弹窗。这是 iOS 10.3 之后请求评分的推荐方式。
在调试模式下,它将始终显示。通过 TestFlight 发布的应用中,AppReview.requestReview
不会执行任何操作。
示例代码
以下是一个完整的示例代码,展示了如何在 Flutter 应用中使用 app_review_plus
插件。
import 'package:app_review_plus/app_review_plus.dart';
import 'package:flutter/material.dart';
import 'dart:io' show Platform;
import 'package:flutter/foundation.dart';
// 主入口点
void main() {
// 桌面平台不是有效平台
if (!kIsWeb) _setTargetPlatformForDesktop();
runApp(MyApp());
}
// 如果当前平台是桌面平台,覆盖默认平台
void _setTargetPlatformForDesktop() {
TargetPlatform? targetPlatform;
if (Platform.isMacOS) {
targetPlatform = TargetPlatform.iOS;
} else if (Platform.isLinux || Platform.isWindows) {
targetPlatform = TargetPlatform.android;
}
if (targetPlatform != null) {
debugDefaultTargetPlatformOverride = targetPlatform;
}
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
void initState() {
super.initState();
AppReview.getAppID.then(log);
}
String appID = "";
String output = "";
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('App Review')),
body: SingleChildScrollView(
child: ListBody(
children: [
Container(height: 40.0),
ListTile(
leading: Icon(Icons.info),
title: Text('App ID'),
subtitle: Text(appID),
onTap: () {
AppReview.getAppID.then(log);
},
),
Divider(height: 20.0),
ListTile(
leading: Icon(Icons.shop),
title: Text('View Store Page'),
onTap: () {
AppReview.storeListing.then(log);
},
),
Divider(height: 20.0),
ListTile(
leading: Icon(Icons.star),
title: Text('Request Review'),
onTap: () {
AppReview.requestReview.then(log);
},
),
Divider(height: 20.0),
ListTile(
leading: Icon(Icons.note_add),
title: Text('Write a New Review'),
onTap: () {
AppReview.writeReview.then(log);
},
),
Divider(height: 20.0),
ListTile(title: Text(output)),
],
),
),
),
);
}
void log(String? message) {
if (message != null) {
setState(() {
output = message;
});
print(message);
}
}
}
解释
- 主入口点:
main
函数是应用的入口点。如果当前平台是桌面平台,会覆盖默认平台。 - 设置目标平台:
_setTargetPlatformForDesktop
函数根据当前平台设置目标平台。 - 状态管理:
MyApp
类是一个StatefulWidget
,其状态由_MyAppState
管理。 - 初始化:在
initState
方法中,调用AppReview.getAppID
获取应用 ID。 - UI 构建:
build
方法构建应用的 UI,包括几个ListTile
按钮,分别用于获取应用 ID、查看商店页面、请求评分和撰写新评分。 - 日志记录:
log
方法用于记录操作结果,并更新 UI。
通过以上代码,你可以在 Flutter 应用中轻松集成 app_review_plus
插件,请求用户对你的应用进行评分。
更多关于Flutter应用评分请求插件app_review_plus的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter应用评分请求插件app_review_plus的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter应用中使用app_review_plus
插件来请求用户评分的示例代码。app_review_plus
是一个官方的Flutter插件,用于在Android和iOS上请求用户评分和评论。
首先,确保你已经在pubspec.yaml
文件中添加了app_review_plus
依赖项:
dependencies:
flutter:
sdk: flutter
app_review_plus: ^latest_version # 请替换为最新的版本号
然后,运行flutter pub get
来安装依赖项。
接下来,在你的Flutter应用中,你可以按照以下步骤使用app_review_plus
插件:
- 导入插件:
在你的Dart文件中导入app_review_plus
插件:
import 'package:app_review_plus/app_review_plus.dart';
- 初始化插件:
在应用启动时初始化插件,通常可以在main.dart
文件的MyApp
类的构造函数或initState
方法中进行:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
final AppReview appReview = AppReview.instance;
// 检查是否支持评分请求
bool isAvailable = await appReview.isAvailable();
print('App review is available: $isAvailable');
runApp(MyApp());
}
- 请求评分:
在合适的时机(例如,用户完成某个重要任务或使用了应用一段时间后),请求用户评分:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('App Review Example'),
),
body: Center(
child: ElevatedButton(
onPressed: _requestReview,
child: Text('Request Review'),
),
),
),
);
}
Future<void> _requestReview() async {
final AppReview appReview = AppReview.instance;
// 请求评分,可选地提供理由
try {
await appReview.requestReview();
} catch (e) {
print('Failed to request review: ${e.message}');
}
}
}
- (可选)自定义评分请求:
你还可以自定义评分请求的理由和自定义的UI元素。以下是一个更复杂的示例,展示了如何设置自定义理由:
Future<void> _customRequestReview() async {
final AppReview appReview = AppReview.instance;
// 设置自定义理由(仅在iOS上有效)
appReview.setStoreLocale('en_US');
appReview.setCustomLocalizedMessage(
iOS: 'We would love to hear your feedback about our app!',
android: null, // Android不支持自定义消息
);
try {
await appReview.requestReview();
} catch (e) {
print('Failed to request review: ${e.message}');
}
}
在你的UI中调用_customRequestReview
方法而不是_requestReview
方法:
ElevatedButton(
onPressed: _customRequestReview,
child: Text('Request Custom Review'),
),
请注意,评分请求的成功与否取决于用户的设备设置和应用商店的政策。在某些情况下,请求可能会被忽略或显示给用户的机会可能有限。
这样,你就可以在Flutter应用中使用app_review_plus
插件来请求用户评分了。希望这个示例对你有帮助!