receive_sharing_intentのiOSの方で、ファイルのpathを表示させるところまではできたのですが、そこからファイルの中身を表示させる方法がわかりません。
ファイルを共有してきて、ボタンを押すと下のテキストにファイルの内容が表示されるようにしたいです。
Flutterのコードはリンク内容にボタンと表示するテキストを入れたものです。
void
1 2class MyApp extends StatefulWidget { 3 @override 4 _MyAppState createState() => _MyAppState(); 5} 6 7class _MyAppState extends State<MyApp> { 8 StreamSubscription _intentDataStreamSubscription; 9 List<SharedMediaFile> _sharedFiles; 10 String _sharedText; 11 String _out = ''; 12 13 14 @override 15 void initState() { 16 super.initState(); 17 18 // For sharing images coming from outside the app while the app is in the memory 19 _intentDataStreamSubscription = ReceiveSharingIntent.getMediaStream() 20 .listen((List<SharedMediaFile> value) { 21 setState(() { 22 print("Shared:" + (_sharedFiles?.map((f) => f.path)?.join(",") ?? "")); 23 _sharedFiles = value; 24 }); 25 }, onError: (err) { 26 print("getIntentDataStream error: $err"); 27 }); 28 29 // For sharing images coming from outside the app while the app is closed 30 ReceiveSharingIntent.getInitialMedia().then((List<SharedMediaFile> value) { 31 setState(() { 32 _sharedFiles = value; 33 }); 34 }); 35 36 // For sharing or opening urls/text coming from outside the app while the app is in the memory 37 _intentDataStreamSubscription = 38 ReceiveSharingIntent.getTextStream().listen((String value) { 39 setState(() { 40 _sharedText = value; 41 }); 42 }, onError: (err) { 43 print("getLinkStream error: $err"); 44 }); 45 46 // For sharing or opening urls/text coming from outside the app while the app is closed 47 ReceiveSharingIntent.getInitialText().then((String value) { 48 setState(() { 49 _sharedText = value; 50 }); 51 }); 52 } 53 54 @override 55 void dispose() { 56 _intentDataStreamSubscription.cancel(); 57 super.dispose(); 58 } 59 60 void loadButton() { 61 } 62 63 @override 64 Widget build(BuildContext context) { 65 const textStyleBold = const TextStyle(fontWeight: FontWeight.bold); 66 return MaterialApp( 67 home: Scaffold( 68 appBar: AppBar( 69 title: const Text('Plugin example app'), 70 ), 71 body: Center( 72 child: Column( 73 children:[ 74 Text("Shared files:", style: textStyleBold), 75 Text(_sharedFiles?.map((f) => f.path)?.join(",") ?? ""), 76 SizedBox(height: 100), 77 Text("Shared urls/text:", style: textStyleBold), 78 Text(_sharedText ?? ""), 79 Padding( 80 padding: EdgeInsets.all(10.0), 81 //ファイル読み込み用のボタン(ボタン押下でloadButtonメソッドを呼び出し) 82 child: ElevatedButton( 83 child: Text('出力したファイルを読み込む'), onPressed: loadButton), 84 ), 85 Padding( 86 padding: EdgeInsets.all(10.0), 87 //読み込みだファイルの内容を表示 88 child: Text( 89 '出力したファイルの内容は「' + _out + '」です!', 90 )), 91 92 ], 93 ), 94 ), 95 ), 96 ); 97 } 98} 99コード
iOSのコードはリンク内容のファイルだけ読み込めるようにしたものになります。
あなたの回答
tips
プレビュー