这是我第一次使用swift和sprite-kit开发应用程序。我想将adMob集成到其中。我一直在寻找解决问题的方法,但我没有成功。
我在GameViewController.swift
override func viewDidLoad() {
super.viewDidLoad()
bannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait)
bannerView.isHidden = true
bannerView.adUnitID = "ca-app-pub-************************"
bannerView.rootViewController = self
view.addSubview(bannerView)
// Configure the view.
let skView = self.view as! SKView
skView.showsFPS = false
skView.showsNodeCount = false
/* Sprite Kit applies additional optimizations to improve rendering performance */
skView.ignoresSiblingOrder = true
// Create and configure the scene.
let aspectRatio = skView.bounds.size.height / skView.bounds.size.width
let scene = MainMenuScene(size:CGSize(width: 320, height: 320 * aspectRatio))
skView.presentScene(scene)
showBanner()
}
func showBanner() {
bannerView.isHidden = false
let request = GADRequest()
request.testDevices = ["******************"]
bannerView.load(request)
}
此设置完全在我的所有场景中显示广告,但我的问题是,如何使用NotificationCenter在MainMenuScene.swift
和GameOverScene.swift
上展示广告?这两个都是他们自己的班级。
答案 0 :(得分:1)
正如您所提到的,您可以使用通知中心。
为通知创建密钥以避免拼写错误。您可以将它放在项目中的任何位置(任何类或新的.swift文件之外)
extension Notification.Name {
static let showBannerAd = Notification.Name(rawValue: "ShowBanner")
}
比在GameViewController中添加ViewDidLoad中的观察者
NotificationCenter.default.addObserver(self, selector: #selector(showBanner), name: .showBannerAd, object: nil) // selector is the method to call
在您的SKScene中,您可以在需要显示横幅时发布通知。
NotificationCenter.default.postNotificationName(.showBannerAd, object: nil)
或者我在Github上有一个帮手,这将使这更容易和更清洁。
https://github.com/crashoverride777/SwiftyAds
希望这有帮助