Skip to content

Commit 6b8ced7

Browse files
committed
fix(ads): conditionally use No-Op ad provider for web platform
- Add support for web platform by using NoOpAdProvider - Prevent MissingPluginException on web due to unsupported native ads - Introduce platform check using kIsWeb constant - Maintain existing functionality for non-web platforms
1 parent 43556cf commit 6b8ced7

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

lib/bootstrap.dart

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ import 'package:flutter/material.dart';
1111
import 'package:flutter_bloc/flutter_bloc.dart';
1212
import 'package:flutter_news_app_mobile_client_full_source_code/ads/ad_provider.dart';
1313
import 'package:flutter_news_app_mobile_client_full_source_code/ads/ad_service.dart';
14+
import 'package:flutter/foundation.dart';
1415
import 'package:flutter_news_app_mobile_client_full_source_code/ads/admob_ad_provider.dart';
16+
import 'package:flutter_news_app_mobile_client_full_source_code/ads/no_op_ad_provider.dart';
1517
import 'package:flutter_news_app_mobile_client_full_source_code/app/app.dart';
1618
import 'package:flutter_news_app_mobile_client_full_source_code/app/config/config.dart'
1719
as app_config;
@@ -42,9 +44,15 @@ Future<Widget> bootstrap(
4244
HttpClient? httpClient;
4345

4446
// Initialize AdProvider and AdService
45-
final AdProvider adProvider = AdMobAdProvider(logger: logger);
47+
// Initialize AdProvider based on platform.
48+
// On web, use a No-Op provider to prevent MissingPluginException,
49+
// as Google Mobile Ads SDK does not support native ads on web.
50+
final AdProvider adProvider = kIsWeb
51+
? NoOpAdProvider(logger: logger)
52+
: AdMobAdProvider(logger: logger);
53+
4654
final adService = AdService(adProvider: adProvider, logger: logger);
47-
await adService.initialize(); // Initialize AdMob SDK early
55+
await adService.initialize(); // Initialize the selected AdProvider early
4856

4957
if (appConfig.environment == app_config.AppEnvironment.demo) {
5058
authClient = AuthInmemory();

0 commit comments

Comments
 (0)