Flutter应用安装检查插件app_install_checker的使用

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

Flutter应用安装检查插件app_install_checker的使用

app_install_checker 是一个用于检测设备上是否安装了某个应用程序的Flutter插件。

快速开始

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

dependencies:
  flutter:
    sdk: flutter
  app_install_checker: ^1.0.0  # 确保使用最新版本

然后运行 flutter pub get 来获取插件。

仅限iOS配置

对于执行安装检查的应用程序

需要在 Info.plist 文件中添加 iOS scheme:

<dict>
    ...
	<key>LSApplicationQueriesSchemes</key>
	<array>
    	<string>example</string>
	</array>
    ...
</dict>

对于被检查是否安装的应用程序

你不需要在该应用程序中安装此包,只需要在 Info.plist 文件中设置自定义URL方案:

<dict>
	...
    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>example</string>
            </array>
        </dict>
        ...
    </array>
</dict>

检查应用是否安装

要检查设备上是否安装了某个应用程序,在iOS上需要提供 iosScheme,在Android上需要提供 packageName

  • iosScheme: iOS上的应用程序scheme。
  • packageName: Android上的应用程序包名。

示例代码如下:

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

void main() => runApp(const MaterialApp(home: ExampleApp()));

class ExampleApp extends StatelessWidget {
  const ExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('App Install Checker Demo')),
      body: const Center(
        child: CheckAppInstalledWidget(),
      ),
    );
  }
}

class CheckAppInstalledWidget extends StatefulWidget {
  const CheckAppInstalledWidget({super.key});

  @override
  State<CheckAppInstalledWidget> createState() =>
      _CheckAppInstalledWidgetState();
}

class _CheckAppInstalledWidgetState extends State<CheckAppInstalledWidget> {
  String _appStatus = '';

  Future<void> _checkAppInstalled(String iosScheme, String packageName) async {
    final bool isInstalled =
        await AppInstallChecker.isAppInstalled(iosScheme: iosScheme, packageName: packageName);
    setState(() {
      _appStatus = isInstalled ? "App is installed." : "App is not installed.";
    });
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisSize: MainAxisSize.min,
      children: <Widget>[
        ElevatedButton(
          onPressed: () => _checkAppInstalled("http", "com.android.chrome"),
          child: const Text('Check App Installed'),
        ),
        Padding(
          padding: const EdgeInsets.all(8.0),
          child: Text(_appStatus),
        ),
      ],
    );
  }
}

以上代码演示了如何使用 app_install_checker 插件来检查设备上是否安装了特定的应用程序。用户可以通过点击按钮来触发检查,并显示相应的结果。


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

1 回复

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


当然,app_install_checker 是一个用于在 Flutter 应用中检查其他应用是否已安装的插件。以下是如何在 Flutter 项目中使用 app_install_checker 插件的详细步骤和代码示例。

步骤 1:添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  app_install_checker: ^latest_version  # 请确保使用最新版本

然后运行 flutter pub get 来获取依赖。

步骤 2:配置权限(Android)

对于 Android 平台,你需要在 AndroidManifest.xml 文件中添加查询包管理器状态的权限:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.yourapp">

    <!-- 其他配置 -->

    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" tools:ignore="ProtectedPermissions" />

</manifest>

注意QUERY_ALL_PACKAGESPACKAGE_USAGE_STATS 权限可能需要用户手动授予或在某些设备上可能无法获得。PACKAGE_USAGE_STATS 权限通常需要在设置中手动启用。

步骤 3:使用插件

现在你可以在你的 Flutter 代码中使用 app_install_checker 插件来检查应用是否已安装。以下是一个简单的示例:

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

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

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

class _MyAppState extends State<MyApp> {
  bool isAppInstalled = false;

  @override
  void initState() {
    super.initState();
    _checkIfAppIsInstalled('com.example.otherapp');
  }

  Future<void> _checkIfAppIsInstalled(String packageName) async {
    bool installed = await AppInstallChecker.isAppInstalled(packageName);
    setState(() {
      isAppInstalled = installed;
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('App Install Checker Example'),
        ),
        body: Center(
          child: Text(
            'Is the app installed? ${isAppInstalled ? 'Yes' : 'No'}',
            style: TextStyle(fontSize: 24),
          ),
        ),
        floatingActionButton: FloatingActionButton(
          onPressed: () {
            _checkIfAppIsInstalled('com.example.otherapp');
          },
          tooltip: 'Check App Installation',
          child: Icon(Icons.check),
        ),
      ),
    );
  }
}

解释

  1. 导入插件:在文件顶部导入 app_install_checker 插件。
  2. 初始化状态:在 initState 方法中调用 _checkIfAppIsInstalled 方法来检查应用是否已安装。
  3. 检查应用安装状态_checkIfAppIsInstalled 方法使用 AppInstallChecker.isAppInstalled 来检查给定包名的应用是否已安装,并更新状态。
  4. 显示结果:在 build 方法中,根据 isAppInstalled 的值显示相应的文本。
  5. 按钮触发检查:添加一个浮动按钮,点击按钮时重新检查应用安装状态。

通过这种方式,你可以在 Flutter 应用中轻松检查其他应用是否已安装。

回到顶部