在我的 flutter 应用程序中,插页式广告没有覆盖所有屏幕, 我测试我的应用程序和空白应用程序相同的问题,使用屏幕顶部没有被同一设备中的广告覆盖,例如(Pixel 6 Pro API 34 emautor)我的flutter最新版本,我使用google_mobile_ads:^4.0.0包
void _createInterstitialAd() {
InterstitialAd.load(
adUnitId:'ca-app-pub-3940256099942544/1033173712',
request: request,
adLoadCallback: InterstitialAdLoadCallback(
onAdLoaded: (InterstitialAd ad) {
print('$ad loaded');
_interstitialAd = ad;
_numInterstitialLoadAttempts = 0;
_interstitialAd!.setImmersiveMode(true);
},
onAdFailedToLoad: (LoadAdError error) {
print('InterstitialAd failed to load: $error.');
_numInterstitialLoadAttempts += 1;
_interstitialAd = null;
if (_numInterstitialLoadAttempts < 3) {
_createInterstitialAd();
}
},
));
}
void _showInterstitialAd() {
if (_interstitialAd == null) {
print('Warning: attempt to show interstitial before loaded.');
return;
}
_interstitialAd!.fullScreenContentCallback = FullScreenContentCallback(
onAdShowedFullScreenContent: (InterstitialAd ad) =>
print('ad onAdShowedFullScreenContent.'),
onAdDismissedFullScreenContent: (InterstitialAd ad) {
print('$ad onAdDismissedFullScreenContent.');
ad.dispose();
_createInterstitialAd();
},
onAdFailedToShowFullScreenContent: (InterstitialAd ad, AdError error) {
print('$ad onAdFailedToShowFullScreenContent: $error');
ad.dispose();
_createInterstitialAd();
},
);
_interstitialAd!.show();
_interstitialAd = null;
}
@override
void initState() {
_createInterstitialAd();
// checkconsent();
super.initState();
}
此处发生的情况取决于显示插页式广告之前显示的支架。我还没有找到完整的解决方案,但是使用类似的方法可以让我清空您的情况下的绿色区域。我在显示插页式广告之前使用
setState(() { displayState = states.blank; });
:
enum states { blank, playing, ... }
states displayState;
...
@override
Widget build(BuildContext context) {
return Stack(
children: [
// interstitial state
if (displayState == states.blank)
Container(),
if (displayState == states.playing)
Container(
color: Colors.Green,
child: [ your typical display widget build is here ]
)
...