gpt4 book ai didi

ios - AdMob - isReady 属性更改时获取通知

转载 作者:行者123 更新时间:2023-11-29 05:28:53 24 4
gpt4 key购买 nike

我正在尝试实现激励广告 - Rewarded Ads New APIs (Beta) .视频已加载,并且 isReady 属性在几秒钟内更改为 true

我有一个按钮,用户按下该按钮就会出现奖励视频

这是当用户按下按钮时触发的功能

func presentRewardAd(from viewController: UIViewController) {
if rewardedAd.isReady {
rewardedAd.present(fromRootViewController: viewController, delegate: self)
}
}

问题是

我想隐藏按钮,直到视频isReady == true,并在视频准备好时显示按钮。所以我想在 rewardedAd.isReady 发生变化时收到通知。

到目前为止我尝试过的:

class CustomRewardAd: GADRewardedAd {

private var observation: NSKeyValueObservation?

override init(adUnitID: String) {
super.init(adUnitID: adUnitID)

observation = observe(\.isReady, options: [.old, .new]) { object, change in
print("isReady changed from: \(change.oldValue!), updated to: \(change.newValue!)")
}
}
}

我也尝试过这个Using Key-Value Observing in Swift但结果相同。

但是 changeHandler 永远不会被调用。我做错了什么吗?

谢谢!

最佳答案

我找到了解决方案,虽然不理想,但有效!也许这可以帮助将来的某人。

当新的奖励请求完成时,isReady 属性将设置为 truefalse 取决于响应是什么。

private func createAndLoadRewardedAd() -> GADRewardedAd {
let rewardedAd = GADRewardedAd(adUnitID: "ca-app-pub-3940256099942544/1712485313")
rewardedAd.load(GADRequest()) { [weak self] error in
guard let self = self else { return }
self.videoIsReady?(rewardedAd.isReady) // already set
}
return rewardedAd
}

不客气!

关于ios - AdMob - isReady 属性更改时获取通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57872125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com