Flutter应用内评论插件galaxy_store_in_app_review的使用

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

Flutter应用内评论插件galaxy_store_in_app_review的使用

galaxy_store_in_app_review

该库封装了由三星Galaxy商店提供的Galaxy Store Review Broadcast,以便在Flutter中轻松使用。 受britannio/in_app_review启发。

Android应用配置

由于Android 11(API级别30)及以上版本的包可见性更改,默认情况下应用程序无法从其他已安装的应用程序中查询包信息。为了启用Galaxy Store应用内评论功能,您必须在AndroidManifest.xml中显式声明Galaxy Store包。

在您的AndroidManifest.xml中添加以下配置:

<manifest>
  <queries>
    <package android:name="com.sec.android.app.samsungapps" />
  </queries>
</manifest>

使用方法

requestReview()

请求弹出Galaxy Store的评价界面。

import 'package:galaxy_store_in_app_review/galaxy_store_in_app_review.dart';

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

openStoreListing()

打开应用在Galaxy Store的页面。

import 'package:galaxy_store_in_app_review/galaxy_store_in_app_review.dart';

GalaxyStoreInAppReview.openStoreListing();

完整示例代码

以下是一个完整的示例代码,展示了如何使用galaxy_store_in_app_review插件。

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

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final _packageNameController = TextEditingController();
  bool _isAvailable = false;
  String _debugMessage = "";

  [@override](/user/override)
  void initState() {
    super.initState();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('GalaxyStore Inapp Review Sample'),
        ),
        body: Padding(
          padding: const EdgeInsets.all(15),
          child: Column(
            children: [
              Row(
                children: [
                  Expanded(
                    child: TextField(
                      controller: _packageNameController,
                      decoration: const InputDecoration(
                        labelText: "输入您的包名",
                      ),
                    ),
                  ),
                  ElevatedButton(
                    onPressed: () async {
                      var targetPackage = _packageNameController.text.isEmpty
                          ? null
                          : _packageNameController.text;
                      await GalaxyStoreInAppReview.openStoreListing(
                          targetPackage: targetPackage);
                    },
                    child: const Text("打开商店"),
                  )
                ],
              ),
              ElevatedButton(
                onPressed: () async {
                  var targetPackage = _packageNameController.text.isEmpty
                      ? null
                      : _packageNameController.text;

                  setState(() {
                    _debugMessage =
                        "检查可用性 - ${targetPackage ?? "(当前应用)"}";
                  });

                  var isAvailable = await GalaxyStoreInAppReview.isAvailable(
                      targetPackage: targetPackage);

                  setState(() {
                    _debugMessage =
                        "${targetPackage ?? "(当前应用)"} 是否${isAvailable ? "" : "不"}可评价。";
                    _isAvailable = isAvailable;
                  });
                },
                child: const Text("检查评价权限"),
              ),
              ElevatedButton(
                onPressed: _isAvailable
                    ? () async {
                        await GalaxyStoreInAppReview.requestReview();
                      }
                    : null,
                child: const Text("打开GalaxyStore评价弹窗"),
              ),
              Text(_debugMessage)
            ],
          ),
        ),
      ),
    );
  }
}

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

1 回复

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


当然,以下是如何在Flutter应用中集成并使用galaxy_store_in_app_review插件的示例代码。这个插件主要用于在三星Galaxy Store上请求应用内评论。请确保你已经将插件添加到你的pubspec.yaml文件中:

dependencies:
  flutter:
    sdk: flutter
  galaxy_store_in_app_review: ^最新版本号  # 请替换为实际的最新版本号

然后,在Flutter项目的Dart文件中,你可以按照以下步骤使用galaxy_store_in_app_review插件:

  1. 导入插件
import 'package:galaxy_store_in_app_review/galaxy_store_in_app_review.dart';
  1. 检查并请求应用内评论

在应用中的适当位置(例如,用户完成某个重要任务或达到一定成就后),你可以请求应用内评论。以下是一个示例代码:

void _requestInAppReview() async {
  final GalaxyStoreInAppReview galaxyStoreInAppReview = GalaxyStoreInAppReview();

  // 检查是否可以请求应用内评论
  bool isAvailable = await galaxyStoreInAppReview.isAvailable();

  if (isAvailable) {
    try {
      // 请求应用内评论
      GalaxyStoreInAppReviewResult result = await galaxyStoreInAppReview.requestReview();

      // 处理结果
      if (result == GalaxyStoreInAppReviewResult.userReviewed) {
        print("用户已提交评论");
      } else if (result == GalaxyStoreInAppReviewResult.userDeclined) {
        print("用户拒绝了评论请求");
      } else if (result == GalaxyStoreInAppReviewResult.error) {
        print("请求评论时发生错误");
      }
    } catch (e) {
      print("请求评论时捕获到异常: $e");
    }
  } else {
    print("应用内评论功能不可用");
  }
}
  1. 调用请求评论函数

你可以在用户完成某个操作后调用_requestInAppReview函数,例如:

void _userCompletedImportantTask() {
  // 用户完成重要任务的逻辑
  // ...

  // 请求应用内评论
  _requestInAppReview();
}

完整的示例可能如下所示:

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('应用内评论示例'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              // 模拟用户完成重要任务
              _userCompletedImportantTask();
            },
            child: Text('完成重要任务并请求评论'),
          ),
        ),
      ),
    );
  }
}

void _userCompletedImportantTask() {
  _requestInAppReview();
}

void _requestInAppReview() async {
  final GalaxyStoreInAppReview galaxyStoreInAppReview = GalaxyStoreInAppReview();

  bool isAvailable = await galaxyStoreInAppReview.isAvailable();

  if (isAvailable) {
    try {
      GalaxyStoreInAppReviewResult result = await galaxyStoreInAppReview.requestReview();

      if (result == GalaxyStoreInAppReviewResult.userReviewed) {
        print("用户已提交评论");
      } else if (result == GalaxyStoreInAppReviewResult.userDeclined) {
        print("用户拒绝了评论请求");
      } else if (result == GalaxyStoreInAppReviewResult.error) {
        print("请求评论时发生错误");
      }
    } catch (e) {
      print("请求评论时捕获到异常: $e");
    }
  } else {
    print("应用内评论功能不可用");
  }
}

请确保你的应用已经发布到三星Galaxy Store,并且你已经遵循了三星开发者文档中的相关指南来启用应用内评论功能。此外,由于这是一个特定于三星Galaxy Store的插件,它只会在三星设备上有效。

回到顶部