Flutter Share.sharefiles deprecated shareXFilesエラー
津路です。今年最初の投稿です。
1月24日の夜から朝にかけて、近畿地方にしては、急に冷え込み、吹雪となって、24日夜は雨戸を全て閉めました。
25日朝は、アルバイトの間、手指が凍るほど感覚が一部なくなりそうでした。
皆様の地域では、お仕事、生活に支障はなかったでしょうか??
さて、しばらくFlutterでの開発をしているうちに、SNSを使った共有機能を、share_plusプラグインにて行えるよう、
Share.sharefilesで画像ファイルを突っ込もうとしたのですが、deprecated warningが出てしまいました。
TextButtonのonPressedイベントにて
1 2 3 4 5 6 7 | final directory = (await getApplicationDocumentsDirectory()).path; final imagePath = await File('${directory}/image.png').create(); await imagePath.writeAsBytes(image); final files = <XFile>[]; var xfile = XFile(imagePath.path); files.add(xfile); await Share.shareXFiles(files, text: '私の画像です'); |
と、新しい関数で書いたのですが、実行時エラーが発生しました。
1 | Unhandled Exception: PlatformException(error, sharePositionOrigin: argument must be set, {{0, 0}, {0, 0}} must be non-zero and within coordinate |
上記から推測すると、イメージファイルが空???なんでしょうね。
imageの実体は、screenshotプラグインのScreenshotControllerを使った、スクリーンショットです。
widgetのショット画像を生成するのですが、実際に取得できるのは、Flutterお馴染みのUint8List型です。
1 2 3 | final directory = (await getApplicationDocumentsDirectory()).path; final imagePath = await File('${directory}/image.png').create(); await imagePath.writeAsBytes(image); |
上記コードにて、ディレクトリ下に画像ファイルを作ってしまいます。
と、じゃあ、imagePathは有効なの?です。
デバッグしてみると、imagePathのpathは実際に取得できて、しかもファイルに書かれているようです。_rawPathは190です。
シミュレーターではエラーが出ません。