appOpenAdEnabled method
void
appOpenAdEnabled(})
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();
}
}