패키지, 저장소 및 앱 카테고리 검색

flutter_share 표지
패키지 상세v2.0.0

flutter_share

Android 및 iOS용 Flutter 앱에서 메시지, 링크 또는 파일을 간단하게 공유하는 방법(엔터를 눌러 일부 GIF 보기)

AndroidiOS
30일 다운로드
2.8천
좋아요
306
Pub 점수
150

패키지 설치

flutter pub add flutter_share

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

Flutter Share는 Android 및 iOS 앱에서 메시지, 링크, 파일을 원활하게 공유할 수 있도록 해주는 가벼운 Flutter 패키지입니다. 사용자가 시스템 대화 상자를 통해 콘텐츠를 공유할 수 있도록 네이티브 공유 인텐트를 통합하는 간단한 API를 제공합니다. 이 패키지는 텍스트와 파일 공유를 모두 지원하여 빠른 공유 기능이 필요한 앱에 적합합니다. pub add를 통해 최소한의 설정으로 플랫폼 간 호환성과 플랫폼 전용 코드 없이 작동합니다. 소스 코드는 GitHub에서 오픈되어 있어 투명성과 커뮤니티 기여를 장려합니다.

사용 사례

  • 소셜 미디어에서 링크 공유하기
  • 메시지 앱으로 텍스트 조각 보내기
  • 이미지 또는 문서와 같은 파일 내보내기
  • 사용자 생성 콘텐츠 공유 활성화
  • 앱의 소셜 기능과의 통합

주요 기능

  • 크로스 플랫폼 지원 (Android 및 iOS)
  • 텍스트와 파일을 공유하기 위한 간단한 API
  • 네이티브 공유 대화상자
  • 오픈소스이며 GitHub 저장소 보유
  • 필수 최소 구성

적합한 대상

  • 기본 공유 기능이 필요한 앱
  • 소셜 또는 콘텐츠 공유 앱
  • 파일 관리 또는 생산성 도구
  • 간편한 통합을 원하는 개발자
  • 간단함과 신뢰성을 우선시하는 프로젝트

고려 사항

  • 안드로이드 및 iOS 플랫폼에 제한됨
  • 공유를 위해 사용자 상호작용이 필요합니다
  • 고급 사용자 정의 옵션이 없습니다
  • 네이티브 OS 공유 메커니즘에 의존
  • 특정 앱으로 직접 공유하는 것을 지원하지 않습니다

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

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!

카테고리

소스 저장소

이 패키지를 사용하는 프로젝트