Flutter应用分享插件share_apps的使用

Flutter应用分享插件share_apps的使用

通过朋友之间的推荐将您的应用展示给每个人。以非常微妙和简单的方式实现点对点邀请。

开始使用

这个项目是一个 Dart 包, 一个库模块,包含可以在多个 Flutter 或 Dart 项目中轻松共享的代码。

要开始使用 Share 应用,请查看我们的 在线文档,该文档提供了教程、示例、有关 SDK 集成的指导以及完整的 API 参考。

安装

pubspec.yaml 文件中添加依赖:

dependencies:
  ...
  share_apps: ^0.2.10

权限

Android

AndroidManifest.xml 文件中添加以下权限:

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

iOS

Info.plist 文件中设置 NSContactsUsageDescription

<key>NSContactsUsageDescription</key>
<string>此应用需要联系人访问权限才能正常运行。</string>

如何使用

导入 share_apps 包:

import 'package:share_apps/share_apps.dart';

示例

步骤 1

main.dart 文件中初始化 ShareApps,传入 appIdsecreteKey 和注册的电子邮件地址。

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

void main() {
  ShareApps.init(
    appId: 'XXXXXXXXXXXXXXXXXXX', // (AppId from) royalty.shareapps.net
    secreteKey: 'XXXXXXXXXXXXXX', // (secreteKey from) royalty.shareapps.net
    email: 'XXX@XXX.com', // (Email Address which registered in) royalty.shareapps.net (它需要用于电子邮件邀请)
    app_name: 'XXXXXX', // (输入你集成 ShareApp SDK 的应用名)
  );
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  [@override](/user/override)
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Share App Demo'),
      ),
      body: Center(
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.center,
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            MaterialButton(
              child: Text('Invite Friends'),
              onPressed: () {
                ShareApps.sendInvitation(context: context);
              },
            ),
            MaterialButton(
              child: Text('Invite Friends Background'),
              onPressed: () {
                ShareApps.sendInvitationInBackground(
                  context: context,
                  firstName: 'XXXX', // 用户名字
                  lastName: 'XXXX', // 用户姓氏
                  email: 'XXX@XXX.com', // 用户电子邮件地址
                  countryCode: 'US', // 用户国家
                  language: 'English', // 用户语言
                  number: '+1000000000', // 用户手机号码(带国家代码)
                );
              },
            ),
          ],
        ),
      ),
    );
  }
}

注意事项

  • 使用有效的手机号码,并包含国家代码。
  • 使用有效的电子邮件地址。

更多详情请看示例

sendInvitation()

class _MyHomePageState extends State<MyHomePage> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Share App Demo'),
      ),
      body: Center(
        child: RaisedButton(
          child: Text('Invite Friends'),
          onPressed: () {
            ShareApps.sendInvitation(context: context);
          },
        ),
      ),
    );
  }
}

sendInvitationInBackground()

class _MyHomePageState extends State<MyHomePage> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Share App Demo'),
      ),
      body: Center(
        child: RaisedButton(
          child: Text('Invite Friends in Background'),
          onPressed: () {
            ShareApps.sendInvitationInBackground(
              context: context,
              firstName: 'XXXX', // 用户名字
              lastName: 'XXXX', // 用户姓氏
              email: 'XXX@XXX.com', // 用户电子邮件地址
              countryCode: 'US', // 用户国家
              language: 'English', // 用户语言
              number: '+1000000000', // 用户手机号码(带国家代码)
            );
          },
        ),
      ),
    );
  }
}

更多关于Flutter应用分享插件share_apps的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

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


当然,下面是一个关于如何在Flutter应用中使用share_apps插件的示例代码。share_apps插件允许你通过不同的应用程序(如社交媒体、邮件等)分享内容。首先,你需要确保已经在你的pubspec.yaml文件中添加了该插件的依赖。

pubspec.yaml中添加依赖

dependencies:
  flutter:
    sdk: flutter
  share_apps: ^2.0.0  # 请检查最新版本号

安装依赖

在终端中运行以下命令来安装依赖:

flutter pub get

使用share_apps插件的示例代码

以下是一个简单的Flutter应用示例,展示了如何使用share_apps插件来分享文本内容。

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Share Apps Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Share Apps Example'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            // 要分享的内容
            String shareText = "Hello, I am sharing this text using share_apps plugin!";
            
            // 调用share方法
            bool result = await ShareApps.share(
              text: shareText,
              subject: "Subject of the share", // 可选参数
              filePath: null, // 如果你要分享文件,可以设置文件路径
              mimeType: null, // 如果你要分享文件,可以设置MIME类型
            );

            // 根据分享结果显示SnackBar
            ScaffoldMessenger.of(context).showSnackBar(
              SnackBar(
                content: Text(result ? 'Shared successfully!' : 'Failed to share'),
                duration: Duration(seconds: 2),
              ),
            );
          },
          child: Text('Share Text'),
        ),
      ),
    );
  }
}

代码解释

  1. 导入必要的包

    • package:flutter/material.dart:Flutter的Material Design组件库。
    • package:share_apps/share_apps.dartshare_apps插件。
  2. 创建应用入口

    • MyApp类是一个无状态的小部件,它构建了应用的主要结构。
  3. 创建主页面

    • MyHomePage类包含了一个按钮,当点击按钮时,会调用ShareApps.share方法来分享文本内容。
  4. 调用ShareApps.share方法

    • text参数指定了要分享的内容。
    • subject参数是可选的,指定了分享的标题。
    • filePathmimeType参数用于分享文件(本示例中未使用)。
  5. 显示分享结果

    • 使用ScaffoldMessenger.of(context).showSnackBar方法根据分享结果显示一个SnackBar。

这样,你就可以在你的Flutter应用中集成并使用share_apps插件来分享内容了。确保在真实环境中测试分享功能,以验证其在不同设备和平台上的兼容性。

回到顶部