похоже, что есть что-то, что мешает показу промежуточной рекламы, когда представление листа уже представлено
, в моем случае я хотел представить объявление сразу после просмотра листа представил, который не работал
, что сработало, Представив объявление, и после его отклонения, представление листа будет представлено , и оно сработало!
для Interstitial я использовал этот код
import SwiftUI
import GoogleMobileAds
import UIKit
final class Interstitial:NSObject, GADInterstitialDelegate{
var interstitialID = "ca-app-pub-3940256099942544/4411468910"
var interstitial:GADInterstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/4411468910")
var sheet: (() -> Void)? = nil //this closure will be executed after dismissing the ad
override init() {
super.init()
LoadInterstitial()
}
func LoadInterstitial(){
let req = GADRequest()
self.interstitial.load(req)
self.interstitial.delegate = self
}
func showAd(then sheet:(() -> Void)?){
if self.interstitial.isReady{
let root = UIApplication.shared.windows.first?.rootViewController
self.interstitial.present(fromRootViewController: root!)
self.sheet = sheet
}
else{
print("Not Ready")
}
}
func interstitialDidDismissScreen(_ ad: GADInterstitial) {
self.interstitial = GADInterstitial(adUnitID: interstitialID)
LoadInterstitial()
if let presentSheet = sheet {
presentSheet()
}
}
}
здесь мы передаем все, что хотим, чтобы замыкание было вызвано, когда interstitialDidDismissScreen
вызывается
сейчас вместо переключения состояния, когда Нажмите кнопку, она будет переключена после того, как объявление будет удалено
в верхней части вашего содержимого. 1025 * Примечание: я использовал код промежуточной рекламы из этого gist
Кроме того, AFAIK мы не можем сказать, является ли это ошибкой в swiftUI, или это то, что googleAdmob должен был позаботиться о, нет Поддержка SwiftUI От Google, поэтому мы не можем винить их.