appOpenAdEnabled method

  1. @override
void appOpenAdEnabled(
  1. bool enabled, {
  2. int? fixedInterval,
  3. bool enableAutoCache = true,
})
override

是否启动开屏广告

Implementation

@override
void appOpenAdEnabled(bool enabled, {int? fixedInterval, bool enableAutoCache = true}) {
  if (fixedInterval != null) {
    _fixedInterval = fixedInterval;
  }
  _enableAutoCache = enableAutoCache;
  if (_isAppOpenAdEnabled == enabled) return;
  _isAppOpenAdEnabled = enabled;
  if (_isAppOpenAdEnabled) {
    unawaited(_startListeningSafely());
    //取消旧订阅
    _appStateSubscription?.cancel();
    //开启订阅
    _appStateSubscription = AppStateEventNotifier.appStateStream.listen((state) {
      LogUtils.d("$adsType app state changed: ${state.name}");
      if (!_isAppOpenAdEnabled || !_shouldShowAppOpenAd) return;
      if (state == AppState.foreground) {
        final secondsSinceLastAd = DateTime.now().difference(_lastAdShownTime).inSeconds;
        if (secondsSinceLastAd >= _fixedInterval) {
          showFullScreenAds();
        } else {
          LogUtils.d("Ad countdown: ${_fixedInterval - secondsSinceLastAd}s remaining");
        }
      }
    });
  } else {
    _disableAppOpenAd();
  }
}