gpt4 book ai didi

ios - Swift 3 - AdMob 未显示在现有的 View Controller 上

转载 作者:行者123 更新时间:2023-11-28 08:00:28 25 4
gpt4 key购买 nike

我正在尝试将 AdMob 集成到我基于 Swift 的应用程序中,但无论我尝试什么代码,它都不起作用。

我创建了一个新的 View Controller 并使用了与我的“Home” Controller 完全相同的代码,这似乎可以工作,但它不适用于我现有的任何 ViewController。

我目前的 Storyboard是这样的: Current storyboard

我当前的广告代码如下所示:

import UIKit
import GoogleMobileAds
import AudioToolbox

class AdTest: UIViewController, GADBannerViewDelegate {
// Ad banner
var adMobBannerView = GADBannerView()
let ADMOB_BANNER_UNIT_ID = "ca-app-pub-9999999999"




override func viewDidLoad() {
super.viewDidLoad()


// Init AdMob banner
initAdMobBanner()
}





// MARK: - ADMOB BANNER
func initAdMobBanner() {

if UIDevice.current.userInterfaceIdiom == .phone {
// iPhone
adMobBannerView.adSize = GADAdSizeFromCGSize(CGSize(width: 320, height: 50))
adMobBannerView.frame = CGRect(x: 0, y: view.frame.size.height, width: 320, height: 50)
} else {
// iPad
adMobBannerView.adSize = GADAdSizeFromCGSize(CGSize(width: 468, height: 60))
adMobBannerView.frame = CGRect(x: 0, y: view.frame.size.height, width: 468, height: 60)
}

adMobBannerView.adUnitID = ADMOB_BANNER_UNIT_ID
adMobBannerView.rootViewController = self
adMobBannerView.delegate = self
view.addSubview(adMobBannerView)

let request = GADRequest()
adMobBannerView.load(request)
}


// Hide the banner
func hideBanner(_ banner: UIView) {
UIView.beginAnimations("hideBanner", context: nil)
banner.frame = CGRect(x: view.frame.size.width/2 - banner.frame.size.width/2, y: view.frame.size.height - banner.frame.size.height, width: banner.frame.size.width, height: banner.frame.size.height)
UIView.commitAnimations()
banner.isHidden = true
}

// Show the banner
func showBanner(_ banner: UIView) {
UIView.beginAnimations("showBanner", context: nil)
banner.frame = CGRect(x: view.frame.size.width/2 - banner.frame.size.width/2, y: view.frame.size.height - banner.frame.size.height, width: banner.frame.size.width, height: banner.frame.size.height)
UIView.commitAnimations()
banner.isHidden = false
}





override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}

}

我的 AdTest ViewController 显示了这一点:

AdTest ViewController

而我的 Home ViewController 根本不显示广告:

Home ViewController

最佳答案

所以我发现了问题,事实证明,如果您更改全局用户默认值,AdMob 将无法工作。

作为临时修复,我在广告显示之前添加了它。

//MARK : - Load table data
UserDefaults.standard.register(defaults: ["UserAgent": "AB-" + UIDevice.current.identifierForVendor!.uuidString])
////////////
//GET CODE//
////////////

//MARK : - Load AdMob
UserDefaults.standard.register(defaults: ["UserAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Mobile/15A372"])
initAdMobBanner()

//Set browser back so the app works
UserDefaults.standard.register(defaults: ["UserAgent": "AB-" + UIDevice.current.identifierForVendor!.uuidString])

关于ios - Swift 3 - AdMob 未显示在现有的 View Controller 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46795837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com