【flutter】アプリにシェア機能を持たせる~Share~

  • URLをコピーしました!

こんにちは!

本記事では、右の動画のように、シェアボタンを押すことでSNSなどにシェアする機能を呼び出す手順を説明します。

シェアする機能に必要なパッケージはShareというパッケージです。

目次

パッケージをインストール

ターミナルで、flutter pub add shareflutter pub get を打ってください。パッケージのインストールがよく分からない方は以下の記事をご覧ください。

あわせて読みたい
【Flutter】パッケージをインストール/アンインストールする方法について~コマンドと一緒に紹介 パッケージとは、Widgetをまとめたものです。目的に沿ったパッケージを導入することで完成されたWidgetを使って簡単に開発ができるため、手間が大幅に短縮されます。 本...

実装方法

テキストのみをシェアする場合

下記のように、Share.shareを使用します。

return Scaffold(
  appBar: AppBar(
    title: Text("test"),
    actions: [
      icon: Icon(Icons.share),
      onPressed: (){
        Share.share('シェアしたい文');
        },
      ],
    ),
  );

スクリーンショットをシェアしたいとき

スクリーンショットをシェアしたいときは、少し複雑になります。追加で以下の三つのパッケージが必要になります。

share_plus, screenshot, path_provider

下記をインポートします。

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';
import 'package:screenshot/screenshot.dart';
import 'package:share_plus/share_plus.dart';

以下のコードでは、スクリーンショットを保存して、保存した画像を指定してシェアしています。

final _screenShotController = ScreenshotController();
...

return Scaffold(
          appBar: AppBar(
            title: Text("test"),
            actions: [TextButton(
                onPressed: () async {
                  const _shareText = 'シェアしたい文章...';
                  final _screenshot = await _screenShotController.capture(delay: const Duration(milliseconds: 10));

                  if (_screenshot != null) {
                    final _documentDirectoryPath = await getApplicationDocumentsDirectory();
                    final imagePath = await File('${_documentDirectoryPath.path}/screenshot.png').create();
                    await imagePath.writeAsBytes(_screenshot);
                    await Share.shareFiles([imagePath.path], text: _shareText);
                  }
                },
             )],
         ),
       );

参考記事

Qiita
【Flutter】スクリーンショットをSNSにシェアする - Qiita 概要Flutterで作成したアプリにシェア機能を実装した際の備忘録です。3つのパッケージを利用することで、簡単に任意のWidgetのスクリーンショットを添付してSNSなどへシェ...
Qiita
Flutterでシェア機能を持ったアプリを作成する - Qiita こんな感じのテキストをシェアするアプリを作ります(これはアプリと言っていいのか...?w)シェアする機能を使うために、share というライブラリを使います。pubspec.yaml...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次