这是部分答案,仅适用于 iOS。仍然不知道如何在 Android 上处理这个问题(或者甚至可能)。
如果您想在应用程序的“设置”应用程序中设置可查看和可更改的首选项,则基本上需要做一个额外的步骤。一般的总体步骤是:
-- 像往常一样创建 Flutter 首选项。
-- 在 iOS 文件夹中创建一个名为“Settings.bundle”的新 TOP 级文件夹。 Runner 文件夹中已经有其中之一,但这对我们来说并不太有用。
-- 在 Settings.bundle 文件夹中,您需要另一个名为“en.lproj”(或您想要的任何其他语言)的子文件夹。在那个子文件夹中,您需要一个名为“Root.strings”的文件。
-- 与 en.lproj 处于同一级别的是另一个名为“Root.plist”的文件。所以结构看起来基本上是这样的:
main_app/
iOS/
...
Settings.bundle/
en.lproj/
Root.strings
Root.plist
根目录
这就是魔法(大部分)存在的地方。事实证明,flutter 会自动添加前缀“flutter”。您使用的所有首选项名称。这就是秘密。所以这里是一个 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 Settings
希望这可以帮助您解决这个小难题!现在,如果我们能弄清楚 Android!