@@ -202,34 +202,26 @@ Client? get zoneClient {
202
202
/// HTTP requests made using `dart:io` or `dart:html` APIs,
203
203
/// or using specifically instantiated client implementations, are not affected.
204
204
///
205
- /// When used in the context of Flutter, [runWithClient] should be called before
206
- /// [`WidgetsFlutterBinding.ensureInitialized`] (https://api.flutter.dev/flutter/widgets/WidgetsFlutterBinding/ensureInitialized.html)
207
- /// because Flutter runs in whatever [Zone] was current at the time that the
208
- /// bindings were initialized.
209
- ///
210
- /// [`runApp`] (https://api.flutter.dev/flutter/widgets/runApp.html) calls
211
- /// [`WidgetsFlutterBinding.ensureInitialized`] (https://api.flutter.dev/flutter/widgets/WidgetsFlutterBinding/ensureInitialized.html)
212
- /// so the easiest approach is to call that in [body] :
213
- /// ```
214
- /// void main() {
215
- /// var clientFactory = Client.new; // Constructs the default client.
216
- /// if (Platform.isAndroid) {
217
- /// clientFactory = MyAndroidHttpClient.new;
218
- /// }
219
- /// runWithClient(() => runApp(const MyApp()), clientFactory);
220
- /// }
221
- /// ```
222
- ///
223
205
/// If [runWithClient] is used and the environment defines
224
206
/// `no_default_http_client=true` then generated binaries may be smaller e.g.
225
207
/// ```shell
226
- /// $ flutter build appbundle --dart-define=no_default_http_client=true ...
227
208
/// $ dart compile exe --define=no_default_http_client=true ...
228
209
/// ```
229
210
///
230
211
/// If `no_default_http_client=true` is set then any call to the [Client]
231
212
/// factory (i.e. `Client()` ) outside of the [Zone] created by [runWithClient]
232
213
/// will throw [StateError] .
214
+ ///
215
+ /// > [!IMPORTANT]
216
+ /// > Flutter does not guarantee that callbacks are executed in a particular
217
+ /// > [Zone] .
218
+ /// >
219
+ /// > Instead of using [runWithClient] , Flutter developers can use a framework,
220
+ /// > such as [`package:provider`] (https://pub.dev/packages/provider), to make
221
+ /// > a [Client] available throughout their applications.
222
+ /// >
223
+ /// > See the
224
+ /// > [Flutter Http Example] (https://github.com/dart-lang/http/tree/master/pkgs/flutter_http_example).
233
225
R runWithClient <R >(R Function () body, Client Function () clientFactory,
234
226
{ZoneSpecification ? zoneSpecification}) =>
235
227
runZoned (body,
0 commit comments