Buscar pacotes, repositórios e categorias de apps

Capa de flutter_share
Detalhes do pacotev2.0.0

flutter_share

Forma simples de compartilhar mensagens, links ou arquivos do seu aplicativo Flutter para Android e iOS (Pressione Enter para ver alguns GIFs).

AndroidiOS
Downloads em 30 dias
2,8 mil
Curtidas
306
Pontos Pub
150

Instalar pacote

flutter pub add flutter_share

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Flutter Share é um pacote leve para Flutter que permite compartilhar mensagens, links e arquivos de forma contínua em aplicativos Android e iOS. Ele fornece uma API simples para integrar intenções nativas de compartilhamento, permitindo que os usuários compartilhem conteúdo por meio de diálogos do sistema. O pacote suporta tanto compartilhamento de texto quanto de arquivos, tornando-o ideal para aplicativos que precisam de funcionalidade de compartilhamento rápida. Com configuração mínima via pub add, funciona em todas as plataformas sem exigir código específico da plataforma. O código-fonte está aberto no GitHub, incentivando transparência e contribuições da comunidade.

Casos de uso

  • Compartilhando links nas redes sociais
  • Enviando trechos de texto para aplicativos de mensagens
  • Exportar arquivos como imagens ou documentos
  • Habilitar compartilhamento de conteúdo gerado pelo usuário
  • Integração com os recursos sociais do aplicativo

Principais recursos

  • Suporte multiplataforma (Android e iOS)
  • API simples para compartilhar textos e arquivos
  • Diálogos nativos de compartilhamento
  • Open-source com repositório no GitHub
  • Configuração mínima necessária

Indicado para

  • Aplicativos que precisam de funcionalidade básica de compartilhamento
  • Aplicativos sociais ou de compartilhamento de conteúdo
  • Gerenciamento de arquivos ou ferramentas de produtividade
  • Desenvolvedores em busca de integração fácil
  • Projetos que priorizam simplicidade e confiabilidade

Considerações

  • Limitado às plataformas Android e iOS
  • Requer interação do usuário para compartilhar
  • Sem opções avançadas de personalização
  • Depende dos mecanismos nativos de compartilhamento do sistema operacional
  • Não oferece suporte para compartilhamento direto em aplicativos específicos

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

Share Plugin

pub package

** This plugin was discontinued after the flutter official one add support to files **

A Flutter plugin for IOS and Android providing a simple way to share a message, link or local files.

Features:

  • Share messages and/or link urls.
  • Share local files.

android         ios

Installation

First, add flutter_share as a dependency in your pubspec.yaml file.

iOS

Add if not exists one row to the ios/podfile after target runner:

...

target 'Runner' do
    use_frameworks!

...
Android

If you pretends to use the file share, you need to configure the file provider, this will give access to the files turning possible to share with other applications.

Add to AndroidManifest.xml:

<application>
...
<provider
    android:name="androidx.core.content.FileProvider"
    android:authorities="${applicationId}.provider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/provider_paths"/>
</provider>
</application>

Obs: You can change the android:name if you have an extension of file provider.

Add res/xml/provider_paths.xml:

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path name="external_files" path="."/>
</paths>

If you want to learn more about file provider you can access:

  • https://developer.android.com/reference/android/support/v4/content/FileProvider
Example

Here is an example flutter app displaying the two shares methods. (I'm using documents_picker just to get a local file you don't need to use.)

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

import 'package:flutter/services.dart';
import 'package:flutter_share/flutter_share.dart';
import 'package:documents_picker/documents_picker.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  Future<void> share() async {
    await FlutterShare.share(
      title: 'Example share',
      text: 'Example share text',
      linkUrl: 'https://flutter.dev/',
      chooserTitle: 'Example Chooser Title'
    );
  }

  Future<void> shareFile() async {
    List<dynamic> docs = await DocumentsPicker.pickDocuments;
    if (docs == null || docs.isEmpty) return null;

    await FlutterShare.shareFile(
      title: 'Example share',
      text: 'Example share text',
      filePath: docs[0] as String,
    );
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Center(
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.center,
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              FlatButton(
                child: Text('Share text and link'),
                onPressed: share,
              ),
              FlatButton(
                child: Text('Share local file'),
                onPressed: shareFile,
              ),
            ],
          ),
        ),
      ),
    );
  }
}

Feedback welcome and Pull Requests are most welcome!

Categorias

Repositório-fonte

Projetos que usam este pacote