flutter,应用内评分/in app review

如题,用flutter开发应用内评分功能,搞了很久,最后解决了,记录下具体的步骤。

其实我想说的是,只要是google的东西都不好对接(例如google的内购,对接就是折磨人,关键你对接完了失败和成功根本就不知道为什么成功了),或者说看起来步骤很简单,但是涉及到东西真的是繁琐,特别是对于我们广大的中国开发小伙伴,真的不太友好。来吧,说说应用内评分这个功能。
 

1、我用的flutter插件是这个,

in_app_review: ^1.0.4,其实这个插件的版本已经更新到了2.0.2,但是我自己flutter 版本还是1.22.6的,所以我选用2.0以下的版本。

2、这个插件貌似在ios上,对接之后直接可以弹出内部评分框的,一两次就成功,但是android上面问题就来了,没那么简单,就像它文档中说的,测试起来各种不行 Testing requestReview() on Android isn't as simple as running your app via the emulator or a physical device. See Testing for more info.

而且在github上面也有很多人留言说对接了,但是就是弹框显示不了(https://github.com/britannio/in_app_review/issues/21

3、怎么解决呢?

4、集成,代码:

import 'package:in_app_review/in_app_review.dart';

final InAppReview inAppReview = InAppReview.instance;

if (await inAppReview.isAvailable()) {
    inAppReview.requestReview();
}

5、代码集成之后,还要按照文档的要求,上传app到google play Console的测试轨道(Internal testing track)中去,同时启用这个版本,加上test uers,测试用户列表;

Testers栏中要添加一些测试人员的google 账号,

注意,在添加测试账号时,文本框输完邮箱之后,要Enter键,才能

Flutter应用内实现评分功能可以通过多种方式,以下是详细介绍: ### 使用自定义组件实现 可以自定义一个评分组件,像引用中给出的 `GradeStart` 组件,它会根据传入的分数和总分,以星级的形式展示评分。以下是该组件的代码,并且添加了详细的注释: ```dart import 'package:flutter/material.dart'; class GradeStart extends StatelessWidget { // 生成星级评分的方法 List<Widget> _getGradeStar(double score, int total) { List<Widget> _list = []; for (var i = 0; i < total; i++) { // 计算当前星星的填充比例 double factor = (score - i); if (factor >= 1) { factor = 1.0; } else if (factor < 0) { factor = 0; } // 使用 Stack 组件叠加灰色和红色星星 Stack _st = Stack( children: <Widget>[ // 灰色的星星,作为背景 Icon( Icons.star, color: Colors.grey, ), // 裁剪红色星星,实现部分填充效果 ClipRect( child: Align( alignment: Alignment.topLeft, widthFactor: factor, child: Icon( Icons.star, color: Colors.redAccent, ), ), ), ], ); _list.add(_st); } return _list; } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Grade Star'), ), body: Container( child: Column( children: <Widget>[ // 显示星级评分 Row( children: _getGradeStar(4.5, 5), ), ], ), ), ); } } ``` 在这个组件里,`_getGradeStar` 方法会依据传入的分数和总分,生成对应的星级评分。每颗星星由一个灰色的背景星星和一个红色的前景星星组成,通过 `ClipRect` 和 `Align` 组件对前景星星进行裁剪,从而实现部分填充的效果。 ### 使用第三方库实现 除了自定义组件,还能使用第三方库来实现评分功能,例如 `flutter_rating_bar` 库。以下是使用该库的示例代码: ```dart import 'package:flutter/material.dart'; import 'package:flutter_rating_bar/flutter_rating_bar.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text('Rating Example'), ), body: Center( child: RatingBar.builder( initialRating: 3, minRating: 1, direction: Axis.horizontal, allowHalfRating: true, itemCount: 5, itemPadding: EdgeInsets.symmetric(horizontal: 4.0), itemBuilder: (context, _) => Icon( Icons.star, color: Colors.amber, ), onRatingUpdate: (rating) { print(rating); }, ), ), ), ); } } ``` 在这个示例中,`RatingBar.builder` 是 `flutter_rating_bar` 库提供的一个构建器,能够方便地创建可交互的评分条。可以通过 `initialRating` 设置初始评分,`allowHalfRating` 允许半星评分,`onRatingUpdate` 回调函数会在评分改变时被调用
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值