У меня вчера была такая же проблема с iOS и Интернетом. Я решил проблему iOS с помощью этого ответа . Я полагаю, что проблема для веб-приложений будет исправлена в будущем (веб не считается стабильной функцией Flutter).
Если вам действительно нужно создать интернационализированное приложение на iOS, Android и web, вы можете использовать этот пакет .
FutureBuilder<Locale>(
future: DeviceLocale.getCurrentLocale(),
builder: (context, localeData) {
if(!localeData.hasData) return Container( color: Colors.white);
Locale locale = localeData.data;
return MaterialApp(
// localizationsDelegates, supportedLocales, ...
// « _ » is the locale detected by flutter
// You should use the locale detected by the library instead
localeResolutionCallback: (_, supportedLocales) {
for (var supportedLocaleLanguage in supportedLocales) {
if (supportedLocaleLanguage.languageCode == locale.languageCode) return supportedLocaleLanguage;
}
// If device not support with locale to get language code then default get first on from the list
return supportedLocales.first;
}
);
},
);
Вы можете вызвать «Localizations.localeOf (context)», чтобы получить языковой стандарт в дочернем элементе виджета MaterialApp.
Похоже, что этот пакет в настоящее время несовместим с настольными приложениями.
Я не проверял на вкладке «Проблемы» на странице Flutter Github, было ли обнаружено сообщение о проблеме. Может, мне стоит подать сигнал сегодня вечером.