Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift RewardedDidDisclose函数未被调用_Swift_Xcode_Admob_Swift5 - Fatal编程技术网

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你找到解决办法了吗?我也面临同样的问题。