SwiftUI中的Google AdMob插页式集成

问题描述 投票:0回答:1

我在SwiftUI中集成插页式广告时遇到问题。

创建插页式广告对象后,我不知道要运行它。有人能帮我吗 ?

class ViewController: UIViewController {

  var interstitial: GADInterstitial!

  override func viewDidLoad() {
    super.viewDidLoad()
    interstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/4411468910")
    let request = GADRequest()
       interstitial.load(request)
  }
}

使用未解析的标识符'interstitial'

 if interstitial.isReady {
           interstitial.present(fromRootViewController: self)
         } else {
           print("Ad wasn't ready")
         }

回显Google AdMob integration in SwiftUI的另一个请求。

我想添加广告事件,例如

extension UIViewController: GADBannerViewDelegate {
    public func adViewDidReceiveAd(_ bannerView: GADBannerView) {
        print("ok ad")
    }

    public func adView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: GADRequestError) {
        print("fail ad")
        print(error)
    }
}

但我不能添加

view.delegate = self

在UIViewControllerRepresentable结构中

admob integration swiftui interstitial
1个回答
0
投票

struct更改为final class

final class GADBannerViewController: UIViewControllerRepresentable

然后让Coordinator实现GADBannerViewDelegate

func makeCoordinator() -> GADBannerViewController.Coordinator
{
    Coordinator(self)
}

以上假设CoordinatorGADBannerViewController内部。

最后您需要Coordinator

class Coordinator: GADBannerViewDelegate
{
    ...
}

class Coordinator
© www.soinside.com 2019 - 2024. All rights reserved.