最近我在代码中实现了奖励视频功能,效果很好。简单地说,当用户从表格视图中选择关卡并观看奖励视频时,它会解锁关卡。但是当用户关闭广告视图时,表格视图保持不变,不会重新加载新信息。
我尝试了一些我在这里找到的解决方案,但没有任何效果。
最近我在代码中实现了奖励视频功能,效果很好。简单地说,当用户从表格视图中选择关卡并观看奖励视频时,它会解锁关卡。但是当用户关闭广告视图时,表格视图保持不变,不会重新加载新信息。
我尝试了一些我在这里找到的解决方案,但没有任何效果。
您可能需要使用手动重新加载表格视图tableView.reloadData()
。在 viewWillAppear 或您在广告播放完毕时触发的任何通知/回调中执行此操作。
您可以在奖励视频打开控制器上设置事件通知。使用这些代码行viewDidLoad
GADRewardBasedVideoAd.sharedInstance().delegate = self
GADRewardBasedVideoAdDelegate 会通知您奖励视频生命周期事件。您需要在加载广告之前设置委托。这个委托中最重要的事件是rewardBasedVideoAd:didRewardUserWithReward:,当用户观看视频应该获得奖励时调用它。您可以选择在此委托中实现其他方法。
然后你需要实现这个委托
func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd,
didRewardUserWith reward: GADAdReward) {
print("Reward received with currency: \(reward.type), amount \(reward.amount).")
// RELOAD YOUR TABLE VIEW DATA HERE
}
有关详细信息,您可以在此处查看详细实现
你可以简单地使用 NSNotification 来调用你的 tableView.reloadData():添加
NotificationCenter.default.addObserver(self, selector: #selector(reload), name: NSNotification.Name(rawValue: "load"), object: nil)
到你的 tableView 控制器 (TVC) ViewDidLoad 和这个函数到你的 TVC
@objc func reload()
{
//setup ur new data
self.tableView.reloadData()
}
然后只需添加
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "load"), object: nil)
在你的RewardedVideo self.dismiss(animated: true, completion: nil)
Player之前