Flutter应用商店商品检查插件store_checker的使用

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

Flutter应用商店商品检查插件store_checker的使用

StoreChecker

StoreChecker 是一个Flutter插件,用于查找当前安装的应用程序的来源。

  • Android: 该插件可以检测应用程序是否从本地源、Google Play商店或其他商店安装。
  • iOS: 可以检测应用程序是否从TestFlight Beta或App Store构建安装。

使用方法

添加依赖

首先,在pubspec.yaml文件中添加以下依赖项:

dependencies:
  store_checker: ^1.6.0

然后执行flutter pub get来安装插件。

示例代码

下面是一个完整的示例应用程序,演示了如何使用store_checker插件来检测应用程序的安装来源。

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

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

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String source = 'None';

  @override
  void initState() {
    super.initState();
    initPlatformState();
  }

  // 初始化平台状态
  Future<void> initPlatformState() async {
    Source installationSource;
    try {
      // 获取应用程序的安装来源
      installationSource = await StoreChecker.getSource;
    } on PlatformException {
      installationSource = Source.UNKNOWN;
    }

    if (!mounted) return;

    setState(() {
      switch (installationSource) {
        case Source.IS_INSTALLED_FROM_PLAY_STORE:
          source = "Play Store";
          break;
        case Source.IS_INSTALLED_FROM_PLAY_PACKAGE_INSTALLER:
          source = "Google Package installer";
          break;
        case Source.IS_INSTALLED_FROM_LOCAL_SOURCE:
          source = "Local Source";
          break;
        case Source.IS_INSTALLED_FROM_AMAZON_APP_STORE:
          source = "Amazon Store";
          break;
        case Source.IS_INSTALLED_FROM_HUAWEI_APP_GALLERY:
          source = "Huawei App Gallery";
          break;
        case Source.IS_INSTALLED_FROM_SAMSUNG_GALAXY_STORE:
          source = "Samsung Galaxy Store";
          break;
        case Source.IS_INSTALLED_FROM_SAMSUNG_SMART_SWITCH_MOBILE:
          source = "Samsung Smart Switch Mobile";
          break;
        case Source.IS_INSTALLED_FROM_XIAOMI_GET_APPS:
          source = "Xiaomi Get Apps";
          break;
        case Source.IS_INSTALLED_FROM_OPPO_APP_MARKET:
          source = "Oppo App Market";
          break;
        case Source.IS_INSTALLED_FROM_VIVO_APP_STORE:
          source = "Vivo App Store";
          break;
        case Source.IS_INSTALLED_FROM_RU_STORE:
          source = "RuStore";
          break;
        case Source.IS_INSTALLED_FROM_OTHER_SOURCE:
          source = "Other Source";
          break;
        case Source.IS_INSTALLED_FROM_APP_STORE:
          source = "App Store";
          break;
        case Source.IS_INSTALLED_FROM_TEST_FLIGHT:
          source = "Test Flight";
          break;
        case Source.UNKNOWN:
          source = "Unknown Source";
          break;
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Center(
          child: Text('Installed from: $source\n'),
        ),
      ),
    );
  }
}

注意事项

  • 插件的检测结果可能因设备和操作系统版本的不同而有所差异。
  • 如果在检测过程中遇到任何问题,请参考GitHub上的issues,或者提交新的问题报告。

希望这个指南能帮助你成功地使用store_checker插件。如果你有任何疑问或需要进一步的帮助,请随时提问!


更多关于Flutter应用商店商品检查插件store_checker的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter应用商店商品检查插件store_checker的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用store_checker插件来检查应用商店商品信息的代码示例。store_checker插件允许你查询特定应用在不同应用商店(如Google Play和App Store)的元数据,如价格、评分、用户评论等。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  store_checker: ^2.0.0  # 请确保使用最新版本

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

2. 配置权限(针对Android和iOS)

Android

android/app/src/main/AndroidManifest.xml中添加以下权限(如果需要):

<uses-permission android:name="android.permission.INTERNET"/>

iOS

ios/Runner/Info.plist中,确保你的应用有权访问网络。通常,默认的Info.plist已经包含了这个权限。

3. 使用插件

以下是一个简单的示例,展示了如何使用store_checker插件来获取Google Play和App Store上的应用信息。

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

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

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String? googlePlayResult;
  String? appStoreResult;

  void checkGooglePlay() async {
    try {
      var result = await StoreChecker.checkGooglePlay(
        id: 'com.example.yourapp', // 替换为你的应用ID
        country: 'US', // 可选,默认为'US'
        language: 'en' // 可选,默认为'en'
      );
      setState(() {
        googlePlayResult = result.toString();
      });
    } catch (e) {
      setState(() {
        googlePlayResult = 'Error: ${e.toString()}';
      });
    }
  }

  void checkAppStore() async {
    try {
      var result = await StoreChecker.checkAppStore(
        id: '123456789', // 替换为你的应用ID(通常是App Store的ID,不是bundle ID)
        country: 'US' // 可选,默认为'US'
      );
      setState(() {
        appStoreResult = result.toString();
      });
    } catch (e) {
      setState(() {
        appStoreResult = 'Error: ${e.toString()}';
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Store Checker Example'),
        ),
        body: Padding(
          padding: const EdgeInsets.all(16.0),
          child: Column(
            children: [
              ElevatedButton(
                onPressed: checkGooglePlay,
                child: Text('Check Google Play'),
              ),
              SizedBox(height: 20),
              ElevatedButton(
                onPressed: checkAppStore,
                child: Text('Check App Store'),
              ),
              SizedBox(height: 40),
              Text('Google Play Result:'),
              Text(googlePlayResult ?? 'N/A'),
              SizedBox(height: 20),
              Text('App Store Result:'),
              Text(appStoreResult ?? 'N/A'),
            ],
          ),
        ),
      ),
    );
  }
}

注意事项

  1. 应用ID:确保你使用的是正确的应用ID。对于Google Play,它是应用的包名(如com.example.yourapp);对于App Store,它是应用的数字ID(不是bundle ID)。
  2. 权限和配置:某些操作可能需要额外的权限或配置,特别是在iOS上。确保你的项目配置正确。
  3. 错误处理:示例代码中包含了基本的错误处理,但在实际项目中,你可能需要更复杂的错误处理逻辑。

这段代码展示了如何初始化store_checker插件并检查Google Play和App Store上的应用信息。你可以根据需要进一步扩展和自定义这些功能。

回到顶部