Вот частичный ответ, подходящий только для iOS.До сих пор не знаю, как справиться с этим на Android (или, если вообще возможно).
Если вы хотите настроить предпочтения, которые можно просматривать и изменять в приложении «Настройки» для вашего приложения, в принципе, вам нужен еще один дополнительный шаг.сделать.Общие общие шаги:
- Создайте настройки флаттера, как обычно.- В папке iOS создайте новую папку верхнего уровня под названием «Settings.bundle».Один из них уже есть в папке Runner, но он не слишком полезен для нас.
- в папке Settings.bundle вам нужна другая подпапка с именем "en.lproj" (или на любых других языках, которые выхочу).В этой подпапке вам нужен файл с именем "Root.strings".
- На том же уровне, что и en.lproj, находится еще один файл с именем «Root.plist».Таким образом, структура выглядит в основном так:
main_app/
iOS/
...
Settings.bundle/
en.lproj/
Root.strings
Root.plist
Root.plist
Вот где живет магия (в основном).Как оказалось, флаттер автоматически добавляет префикс «флаттер».все имена предпочтений, которые вы используете.Это секрет.Итак, вот пример Root.plist.Обратите внимание на имена ключей flutter.XXXX!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>StringsTable</key>
<string>Root</string>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>Title</key>
<string>Data Location</string>
</dict>
<dict>
<key>Type</key>
<string>PSMultiValueSpecifier</string>
<key>Title</key>
<string>Region</string>
<key>Key</key>
<string>flutter.dataSourceRegionV2</string>
<key>DefaultValue</key>
<string>0</string>
<key>Titles</key>
<array>
<string>US/World</string>
<string>EU</string>
<string>Advanced</string>
</array>
<key>Values</key>
<array>
<integer>1</integer>
<integer>2</integer>
<integer>3</integer>
</array>
</dict>
<dict>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
<key>Title</key>
<string>Server</string>
<key>Key</key>
<string>flutter.dataSourceServerURLV2</string>
<key>DefaultValue</key>
<string></string>
<key>IsSecure</key>
<false/>
<key>KeyboardType</key>
<string>URL</string>
<key>AutocapitalizationType</key>
<string>None</string>
<key>AutocorrectionType</key>
<string>No</string>
</dict>
</array>
</dict>
</plist>
Root.strings
Содержит переведенные строки для использования в файле настроек для приложения в зависимости от языка.Это довольно просто.Опять же, из того же примера:
/* A single strings file, whose title is specified in your preferences schema. The strings files provide the localized content to display to the user for each of your preferences. */
"Data Location" = "Data Location";
"Region" = "Region";
"Server" = "Adv. URL";
"none given" = "none given";
"Authorization" = "Authorization";
"Username" = "Username";
"Password" = "Password";
"Advanced" = "Advanced";
"US/World" = "USA";
"EU" = "European Union";
В приложении флаттера вы используете обычное использование shared_preferences - просто не забудьте удалить «флаттер».префикс из вашего приложения.
Вот ссылка на приличную статью, которая содержит больше информации о настройках iOS в целом: Настройки iOS
Надеюсь, это поможет ваммимо этой маленькой загадки!Теперь, если бы мы могли понять, Android!