Flutter를 사용하여 공유 기능을 만드는 응용 프로그램

11488 단어 FlutterDarttech
이런 느낌을 공유하는 교재를 만드는 앱(이게 앱이라고 할 수 있나...? w)

공유 기능을 사용하기 위해 share라는 프로그램 라이브러리를 사용합니다.

pubspec.yaml에 share 추가


# コマンドを実行する
$ flutter pub add share
or
# pubspec.yamlに直接書き込む
dependencies:
  flutter:
    sdk: flutter

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^1.0.2
  
  # 追加
  share: ^2.0.4

AppBar에서 공유 아이콘 공유

Share.share()에 공유된 텍스트입니다.

Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(
      title: const Text('Share Sample'),
      actions: [
        // シェアボタン
        IconButton(
          icon: Icon(Icons.share),
          // シェアボタンをクリックしたときに呼ばれる処理
          onPressed: () => _share(),
        ),
      ],
    ),
  );
}

void _share() => Share.share('共有するテキスト');
공유 아이콘AppBar을 클릭하면 공유된 백플레인이 표시됩니다.r(Hot reload) 또는 R(Hot restart) 다음 오류가 발생하면 적용flutter run을 중지하면 오류가 사라집니다.
E/flutter (28335): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: MissingPluginException(No implementation found for method share on channel plugins.flutter.io/share)
E/flutter (28335): #0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:156:7)
E/flutter (28335): <asynchronous suspension>
또한 공유된 텍스트가 비어 있으면 오류가 발생합니다.
'package:share/share.dart': Failed assertion: line 40 pos 12: 'text.isNotEmpty': is not true.

전역 코드


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

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

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

class MyHomePage extends StatefulWidget {
  
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Share Sample'),
        actions: [
          IconButton(
            icon: Icon(Icons.share),
            onPressed: () => _share(),
          ),
        ],
      ),
    );
  }

  void _share() => Share.share('');
}

좋은 웹페이지 즐겨찾기