Это закодировано в Swift
Я успешно добавил рекламный баннер Google на страницу настроек в своем приложении. Я реализовал это ниже:
import Foundation
import SwiftUI
import GoogleMobileAds
struct AdView : UIViewRepresentable
{
@Binding var AdLoaded : Bool
func makeUIView(context: UIViewRepresentableContext<AdView>) -> GADBannerView
{
let banner = GADBannerView(adSize: kGADAdSizeBanner)
banner.adUnitID = "realAdId"
banner.rootViewController = UIApplication.shared.windows.first?.rootViewController
banner.load(GADRequest())
return banner
}
func updateUIView(_ uiView: GADBannerView, context: UIViewRepresentableContext<AdView>){}
public func adViewDidReceiveAd(_ bannerView: GADBannerView)
{
AdLoaded = true
if (DEBUG_ADS ) { print("Banner Ad Did Find Ad!") }
}
public func adView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: GADRequestError)
{
AdLoaded = false
if (DEBUG_ADS ) { print(error) }
}
}
Я знаю, что, поскольку у меня нет GADBannerViewDelegate
в этой структуре, у меня нет доступа к функциям, которые я реализовал (adViewDidReceiveAd
и adView...didFailToReceiveAdWithError
). Они никогда не вызываются как есть.
Я много возился, но не могу найти правильный способ реализации этих функций делегата.
Моя предполагаемая функциональность заключается в реализации этого AdView в моих настройках. страница как таковая:
if ( someBindingVariable??? )
{
AdView(AdLoaded: self.$AdLoaded)
}
В настоящее время она работает так, что для AdView остается место до его загрузки. Как только реклама загружена, пространство заполняется рекламой. Я хочу, чтобы пространство добавлялось только после загрузки объявления.
Спасибо за помощь, и дайте мне знать, если мне что-то не понятно!