#flutter #redirect #admob #google-ads-api #admob-rewardedvideoad
Вопрос:
Приложение Flutter. Одна кнопка, которая ведет на 2-ю страницу, где находится содержимое.
- Пользователь нажимает на кнопку и должен посмотреть видеорекламу(объявление с вознаграждением).
После завершения видеорекламы > пользователь может открыть 2-ю страницу / или 2-я страница будет автоматически открыта, когда он нажмет » x » на готовом видеорекламе.
Мой вопрос > как это сделать? Как будет выглядеть код и что использовать? Спасибо!
Комментарии:
1. Пожалуйста, отредактируйте вопрос, чтобы ограничить его конкретной проблемой с достаточной детализацией для определения адекватного ответа.
Ответ №1:
Используйте следующий код на своей первой странице над методом сборки
late RewardedAd _rewardedAd;
bool _isRewardedAdReady = false;
// TODO: Implement _loadRewardedAd()
void _loadRewardedAd() {
RewardedAd.load(
adUnitId: AdHelper.rewardedAdUnitId,
request: AdRequest(),
rewardedAdLoadCallback: RewardedAdLoadCallback(
onAdLoaded: (ad) {
this._rewardedAd = ad;
ad.fullScreenContentCallback = FullScreenContentCallback(
onAdDismissedFullScreenContent: (ad) {
setState(() {
_isRewardedAdReady = false;
});
_loadRewardedAd();
},
);
setState(() {
_isRewardedAdReady = true;
});
},
onAdFailedToLoad: (err) {
print('Failed to load a rewarded ad: ${err.message}');
setState(() {
_isRewardedAdReady = false;
});
},
),
);
}
После этого инициализируйте и утилизируйте rewardedad, как
@override
void initState() {
_loadRewardedAd();
super.initState();
}
@override
void dispose() {
_rewardedAd.dispose();
super.dispose();
}
Теперь вызовите измененное объявление с переходом на другую страницу
GestureDetector(
onTap: () {
if(_isRewardedAdReady){
_rewardedAd.show(onUserEarnedReward:
(RewardedAd ad, RewardItem reward) {
print(
'$ad with reward $RewardItem(${reward.amount}, ${reward.type}');
});
}
Navigator.pushReplacement(
context, MaterialPageRoute(builder: (context)=>SecondPage()));
},
child: CustomButton(text:'GoTo Second Page')
),
для лучшего понимания перейдите сюда