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

패키지 상세v2.0.0

share_extend

Android 및 iOS용 플러터 플러그인으로 시스템 UI를 통해 텍스트, 이미지, 비디오 및 파일을 공유합니다.

AndroidiOS
30일 다운로드
1.1천
좋아요
138
Pub 점수
130

패키지 설치

flutter pub add share_extend

패키지 개요

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

share_extend는 Android 및 iOS에서 네이티브 시스템 UI를 통해 텍스트, 이미지, 비디오 및 파일을 공유할 수 있도록 해주는 Flutter 플러그인입니다. 플랫폼별로 특화된 공유 인텐트를 활용할 수 있는 간단한 인터페이스를 제공하여 이메일, 메시징 앱, 소셜 미디어 등으로 콘텐츠를 전송할 수 있습니다. Flutter 생태계와 원활하게 통합되며, 크로스플랫폼 일관성을 유지하면서도 네이티브 공유 기능에 접근할 수 있습니다. 복잡한 설정 없이 간단한 공유 기능이 필요한 앱에 적합합니다.

사용 사례

  • 텍스트 조각 공유
  • 앱에서 이미지 보내기
  • 비디오 배포
  • 파일 내보내기
  • 소셜 플랫폼과의 통합

주요 기능

  • 크로스 플랫폼 지원 (Android 및 iOS)
  • 다양한 콘텐츠 유형을 공유하기 위한 간단한 API
  • 네이티브 시스템 UI 통합
  • 텍스트, 이미지, 비디오 및 파일 공유를 지원합니다
  • 필수 최소 구성

적합한 대상

  • 기본 공유가 필요한 앱
  • 콘텐츠 기반 애플리케이션
  • 소셜 미디어 통합
  • 파일 공유 도구
  • 사용자 생성 콘텐츠를 갖춘 모바일 앱

고려 사항

  • 일부 파일 형식은 플랫폼별 권한이 필요합니다
  • 공유 시트 UI의 사용자 정의 제한
  • 시스템의 공유 옵션 사용 가능 여부에 따라 다릅니다
  • 기기 제조업체에 따라 다르게 동작할 수 있습니다
  • 공유에 대한 내장 분석 또는 추적 기능 없음

원본 README

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

Language: English | 中文简体

ShareExtend

pub package

A Flutter plugin for iOS and Android for sharing text, image, video and file with system ui.

Installation

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

dependencies:
  share_extend: "^2.0.0"
iOS

Add the following key to your info.plist file, located in <project root>/ios/Runner/Info.plist for saving shared images to photo library.

<key>NSPhotoLibraryAddUsageDescription</key>
<string>describe why your app needs access to write photo library</string>
Android

If your project needs read and write permissions for sharing external storage file, please add the following permissions to your AndroidManifest.xml, located in <project root>/android/app/src/main/AndroidManifest.xml

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Import

import 'package:share_extend/share_extend.dart';

Example


//share text
ShareExtend.share("share text", "text","android share panel title","share subject");

//share image
File f =
    await ImagePicker.pickImage(source: ImageSource.gallery);
ShareExtend.share(f.path, "image");

//share video
File f = await ImagePicker.pickVideo(
        source: ImageSource.gallery);
ShareExtend.share(f.path, "video");

//share file
Directory dir = Platform.isAndroid
    ? await getExternalStorageDirectory()
    : await getApplicationDocumentsDirectory();
File testFile = new File("${dir.path}/flutter/test.txt");
if (!await testFile.exists()) {
  await testFile.create(recursive: true);
  testFile.writeAsStringSync("test for share documents file");
}
ShareExtend.share(testFile.path, "file");

///share multiple images
_shareMultipleImages() async {
  List<Asset> assetList = await MultiImagePicker.pickImages(maxImages: 5);
  var imageList = List<String>();
  for (var asset in assetList) {
    String path =
        await _writeByteToImageFile(await asset.getByteData(quality: 30));
    imageList.add(path);
  }
  ShareExtend.shareMultiple(imageList, "image",subject: "share muti image");
}

Future<String> _writeByteToImageFile(ByteData byteData) async {
  Directory dir = Platform.isAndroid
      ? await getExternalStorageDirectory()
      : await getApplicationDocumentsDirectory();
  File imageFile = new File(
      "${dir.path}/flutter/${DateTime.now().millisecondsSinceEpoch}.png");
  imageFile.createSync(recursive: true);
  imageFile.writeAsBytesSync(byteData.buffer.asUint8List(0));
  return imageFile.path;
}

카테고리

의존성

의존성 목록 1 개

소스 저장소

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