initialize method
Future<void>
initialize({
- required String bannerAdUnitId,
- required String interstitialAdUnitId,
- int? maxInterstitialAdCount,
- required VoidCallback onSuccess,
- required VoidCallback onFailed,
初始化广告SDK 在应用启动获取到网络权限之后调用 @param bannerAdUnitId Banner广告单元ID @param interstitialAdUnitId 插屏广告单元ID @param maxInterstitialAdCount 最大插屏广告显示次数,默认值为null @param onSuccess 初始化成功回调 @param onFailed 初始化失败回调
Implementation
Future<void> initialize({
required String bannerAdUnitId,
required String interstitialAdUnitId,
int? maxInterstitialAdCount,
required VoidCallback onSuccess,
required VoidCallback onFailed,
}) async {
// 设置广告单元ID
_bannerAdUnitId = bannerAdUnitId;
_interstitialAdUnitId = interstitialAdUnitId;
_maxInterstitialAdCount = maxInterstitialAdCount;
// 已经成功初始化
if (_initializationStatus == AdapterInitializationState.ready) {
onSuccess();
return;
}
// 获取ATT权限
var isAttAuth = await _authorizationManager.requestAppTrackingAuthorization();
if (!isAttAuth) {
onFailed();
return;
}
if (await _authorizationManager.isPrivacyOptionsRequired()) {
onFailed();
return;
}
_authorizationManager.gatherConsent((consentGatheringError) {
if (consentGatheringError != null) {
// Consent not obtained in current session.
debugPrint("${consentGatheringError.errorCode}: ${consentGatheringError.message}");
onFailed();
return;
}
_authorizationManager.showPrivacyOptionsForm((formError) {
if (formError != null) {
debugPrint("${formError.errorCode}: ${formError.message}");
}
// 初始化广告SDK
MobileAds.instance.initialize().then((InitializationStatus status) {
debugPrint("广告SDK初始化完成: ${status.adapterStatuses}");
final initialized = status.adapterStatuses.values.any(
(adapter) => adapter.state == AdapterInitializationState.ready,
);
if (initialized) {
_initializationStatus = AdapterInitializationState.ready;
onSuccess();
} else {
onFailed();
}
});
});
});
}