본문 바로가기
개발/iOS

SwiftUI에서 Admob광고 추가하기

by lucidmaj7 2019. 12. 27.
728x90
반응형

 

SwiftUI로 넘어오면서 Admob광고를 어떻게 추가하느냐가 문제가 되었다. 구글에서는 SwiftUI발표 이후 따로 이에 대해 따로 발표한게 없는 것으로 안다.

다행히 SwiftUI는 완전 새로운 것이 아니기 때문에 하위호환성도 어느정도 가지고 있다.

StackOverflow에 다행히 해결 방법이 존재 하였다.

# Google AdMob integration in SwiftUI

우선,
UIViewControllorRepresentable을 상속받아 GADBannerViewController를 정의한다.

import GoogleMobileAds
import SwiftUI
import UIKit
struct
GADBannerViewController: UIViewControllerRepresentable {
func makeUIViewController(context: Context) -> UIViewController {
    let view = GADBannerView(adSize: kGADAdSizeBanner)
    let viewController = UIViewController()
    view.adUnitID = "your ad unit id in there."
    view.rootViewController = viewController
    viewController.view.addSubview(view)
    viewController.view.frame = CGRect(origin: .zero, size: kGADAdSizeBanner.size)
    view.load(GADRequest())
    return viewController
}
 
func updateUIViewController(
_ uiViewController: UIViewController,
context: Context) {
    
    }
}

다음 SwiftUI의 바디에서 사용 하면 된다.

HStack {
    Spacer()
    GADBannerViewController()
        .frame(width: kGADAdSizeBanner.size.width, height: kGADAdSizeBanner.size.height)
    Spacer()
}
728x90
반응형

댓글