ユーザーがテキストファイルを作成してAndroidのローカルストレージに保存できるアプリを作成しました。私はpath_providerパッケージを使用しましたgetExternalStorageDirectory()データを外部ストレージに保存します。しかし、私はiosについて同じことを見つけることができません。 getExternalStorageDirectory()は、iosではサポートされていません。
ユーザーが後でFiles appからファイルにアクセスできるようにファイルを保存したい.
Future<String> get _localPath async{
var dir = await getExternalStorageDirectory();
return dir.path;
}
Future<File> get _localFile async{
final path = await _localPath;
return File('$path/test.txt');
}
Future<File> writeData(String msg) async{
final file = await _localFile;
return file.writeAsString(msg);
}
上記のコードはAndroidで機能します(ストレージ権限が提供されている場合)。 iOSで同じことを達成するために誰かが私を助けてくれますか?.
NSDocumentsDirectory(getApplicationDocumentsDirectory()
)にファイルを保存して、ユーザーが利用できるようにすることができます。
このディレクトリを使用して、ユーザーが生成したコンテンツを保存します。このディレクトリの内容は、ファイル共有を通じてユーザーが利用できるようにすることができます。したがって、彼のディレクトリには、ユーザーに公開したいファイルのみを含める必要があります。
ユーザーがディレクトリを使用できるようにするには、 'your_app/ios/Runner.xcworkspace'でXcodeプロジェクトを開く必要があります。次に、RunnerディレクトリのInfo.plistファイルを開き、UIFileSharingEnabled
およびLSSupportsOpeningDocumentsInPlace
キーを使用して2つの行を追加します。両方のキーの値をYES
に設定します。
ファイルアプリを開いて[iPhone内]をクリックすると、アプリケーションの名前が付いたフォルダが表示されます。
お世辞として@niを行います。答えは、両方のキーを有効にする必要があります。これは次のようになります。
Xcode(info.plist):
エディター(info.plist):
<key>LSSupportsOpeningDocumentsInPlace</key>
<true/>
<key>UIFileSharingEnabled</key>
<true/>
ソースの情報:
IOS 11以降では、このキーLSSupportsOpeningDocumentsInPlaceとUIFileSharingEnabledの両方がキーがYESの場合、ローカルファイルプロバイダーは、アプリのドキュメントディレクトリ内のすべてのドキュメントへのアクセスを許可します。これらのドキュメントは、ファイルアプリとドキュメントブラウザーに表示されます。ユーザーはこれらのドキュメントを開いて編集できます。
ソース: Apple開発者-iOSキー