Swift RewardedDidDisclose函数未被调用
我正在聊天应用程序中实现有奖广告,并使用标签栏。我遇到了一个问题,每当我在Swift RewardedDidDisclose函数未被调用,swift,xcode,admob,swift5,Swift,Xcode,Admob,Swift5,我正在聊天应用程序中实现有奖广告,并使用标签栏。我遇到了一个问题,每当我在viewDidLoad中调用函数rewardedAd=createAndLoadRewardedAd(),当我关闭广告时,就会显示广告,而调用函数rewardedddismise时不会出现问题 override func viewDidLoad() { super.viewDidLoad() timerLabelDisplay.layer.opacity = 0.0 rewardedAd = cre
viewDidLoad
中调用函数rewardedAd=createAndLoadRewardedAd()
,当我关闭广告时,就会显示广告,而调用函数rewardedddismise
时不会出现问题
override func viewDidLoad() {
super.viewDidLoad()
timerLabelDisplay.layer.opacity = 0.0
rewardedAd = createAndLoadRewardedAd()
}
现在我们都知道viewDidLoad只会被调用一次,如果我更改选项卡栏并返回它,这对我没有帮助,这意味着我的广告不会加载。因此,我所做的是将rewardedAd=createAndLoadRewardedAd()
放在视图中
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
removeAdsFreeButton.isEnabled = false
removeAdsFreeButton.backgroundColor = .gray
rewardedAd = createAndLoadRewardedAd()
}
现在,当我这样做的时候,一切似乎都很完美,当我更改选项卡栏并再次返回时,我的奖励广告加载没有问题。但是,现在,当ad丢失时,函数rewardedddiddisclease()
没有被调用,我需要调用它,我不知道为什么
以下是完整的代码:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
removeAdsFreeButton.isEnabled = false
removeAdsFreeButton.backgroundColor = .gray
rewardedAd = createAndLoadRewardedAd()
}
override func viewDidLoad() {
super.viewDidLoad()
timerLabelDisplay.layer.opacity = 0.0
}
func createAndLoadRewardedAd() -> GADRewardedAd? {
rewardedAd = GADRewardedAd(adUnitID: "ca-app-pub-3940256099942544/1712485313")
rewardedAd?.load(GADRequest()) { error in
if error != nil {
print("Loading reward ad failed there is a problem here")
} else {
UIView.animate(withDuration: 1.0) {
self.removeAdsFreeButton.isEnabled = true
self.removeAdsFreeButton.layer.backgroundColor = UIColor(named: "ChatiwRed")!.cgColor
self.removeAdsFreeButton.layer.backgroundColor = UIColor(named: "ChatiwYello")!.cgColor
self.removeAdsFreeButton.layer.backgroundColor = UIColor(named: "ChatiwRed")!.cgColor
}
self.removeAdsFreeButton.pulseAnimation()
}
}
return rewardedAd
}
var didUserGotReward = false
func rewardedAdDidDismiss(_ rewardedAd: GADRewardedAd) {
self.rewardedAd = createAndLoadRewardedAd()
print("ok now show the timer")
if didUserGotReward {
UIView.animate(withDuration: 5) {
self.timerLabelDisplay.layer.opacity = 1.0
}
timerLabelDisplay.pulseAnimation()
didUserGotReward = false
}
}
有一个新的广告Api。看看它。@NaveedUlHassan5是的,我使用的是新的api,而不是旧的one@user14357836你找到解决办法了吗?我面临着同样的问题。有一个新的广告Api。看看它。@NaveedUlHassan5是的,我使用的是新的api,而不是旧的one@user14357836你找到解决办法了吗?我也面临同样的问题。