延迟 5 秒后调用 Admob 插页式广告 - Swift iOS
Call Admob interstitial after delay of 5 seconds - Swift iOS
任何人都可以帮助我重写我的代码,因为我在延迟 5 秒后努力展示我的插页式广告。我使用 youTube 上的 VEA 软件教程(本教程使用 UIButton
触发插页式广告)构建了一个视图控制器(如下)。然后我在 运行 一个名为 timerFunc
.
的函数中添加了 NSTimer
行
现在我只在代码中留下了 UIButton
和 timerFunc
来证明它有效。最后,我希望 NSTimer
在 5 秒后调用广告而无需用户进行任何交互。
我已经包括了所有必要的框架,我相信有人可能会认为这是一个简单的挑战,但如果有人能提供帮助,我将不胜感激,如有任何问题,请告诉我。
谢谢。
import UIKit
import SpriteKit
import GoogleMobileAds
class GameOverViewController: UIViewController {
var intersitital: GADInterstitial!
@IBOutlet weak var bannerView: GADBannerView!
// start google tracking
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(true)
var tracker = GAI.sharedInstance().defaultTracker
tracker.set(kGAIScreenName, value: "Game Over Screen")
var builder = GAIDictionaryBuilder.createScreenView()
tracker.send(builder.build() as [NSObject : AnyObject])
//end google tracking
}
override func viewDidLoad() {
super.viewDidLoad()
self.intersitital = self.createAndLoadAd()
NSTimer.scheduledTimerWithTimeInterval(10.0, target: self, selector: "timerFunc", userInfo: nil, repeats: false)
}
override func shouldAutorotate() -> Bool {
return true
}
override func supportedInterfaceOrientations() -> Int {
if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
return Int(UIInterfaceOrientationMask.AllButUpsideDown.rawValue)
} else {
return Int(UIInterfaceOrientationMask.All.rawValue)
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Release any cached data, images, etc that aren't in use.
}
func createAndLoadAd() -> GADInterstitial {
var ad = GADInterstitial(adUnitID: "ca-app-pub-7019466409243282/2303966909")
var request = GADRequest()
request.testDevices = [""]
ad.loadRequest(request)
return ad
}
func someSelector() {
// Something after a delay
}
//
@IBAction func adButton(sender: AnyObject) {
if (self.intersitital.isReady)
{
self.intersitital.presentFromRootViewController(self)
self.intersitital = self.createAndLoadAd()
}
}
func timerFunc() {
println("Timer")
}
override func prefersStatusBarHidden() -> Bool {
return true
}
}
最干净的方法是使用 dispatch_after
:
let seconds: Double = 5
let delayTime = dispatch_time(DISPATCH_TIME_NOW,
Int64(seconds * Double(NSEC_PER_SEC)))
dispatch_after(delayTime, dispatch_get_main_queue()) {
// show your ad
}
也就是说,在 5 秒后显示广告的应用程序是邪恶的,很可能会立即被删除,至少在我的设备上是这样。
任何人都可以帮助我重写我的代码,因为我在延迟 5 秒后努力展示我的插页式广告。我使用 youTube 上的 VEA 软件教程(本教程使用 UIButton
触发插页式广告)构建了一个视图控制器(如下)。然后我在 运行 一个名为 timerFunc
.
NSTimer
行
现在我只在代码中留下了 UIButton
和 timerFunc
来证明它有效。最后,我希望 NSTimer
在 5 秒后调用广告而无需用户进行任何交互。
我已经包括了所有必要的框架,我相信有人可能会认为这是一个简单的挑战,但如果有人能提供帮助,我将不胜感激,如有任何问题,请告诉我。
谢谢。
import UIKit
import SpriteKit
import GoogleMobileAds
class GameOverViewController: UIViewController {
var intersitital: GADInterstitial!
@IBOutlet weak var bannerView: GADBannerView!
// start google tracking
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(true)
var tracker = GAI.sharedInstance().defaultTracker
tracker.set(kGAIScreenName, value: "Game Over Screen")
var builder = GAIDictionaryBuilder.createScreenView()
tracker.send(builder.build() as [NSObject : AnyObject])
//end google tracking
}
override func viewDidLoad() {
super.viewDidLoad()
self.intersitital = self.createAndLoadAd()
NSTimer.scheduledTimerWithTimeInterval(10.0, target: self, selector: "timerFunc", userInfo: nil, repeats: false)
}
override func shouldAutorotate() -> Bool {
return true
}
override func supportedInterfaceOrientations() -> Int {
if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
return Int(UIInterfaceOrientationMask.AllButUpsideDown.rawValue)
} else {
return Int(UIInterfaceOrientationMask.All.rawValue)
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Release any cached data, images, etc that aren't in use.
}
func createAndLoadAd() -> GADInterstitial {
var ad = GADInterstitial(adUnitID: "ca-app-pub-7019466409243282/2303966909")
var request = GADRequest()
request.testDevices = [""]
ad.loadRequest(request)
return ad
}
func someSelector() {
// Something after a delay
}
//
@IBAction func adButton(sender: AnyObject) {
if (self.intersitital.isReady)
{
self.intersitital.presentFromRootViewController(self)
self.intersitital = self.createAndLoadAd()
}
}
func timerFunc() {
println("Timer")
}
override func prefersStatusBarHidden() -> Bool {
return true
}
}
最干净的方法是使用 dispatch_after
:
let seconds: Double = 5
let delayTime = dispatch_time(DISPATCH_TIME_NOW,
Int64(seconds * Double(NSEC_PER_SEC)))
dispatch_after(delayTime, dispatch_get_main_queue()) {
// show your ad
}
也就是说,在 5 秒后显示广告的应用程序是邪恶的,很可能会立即被删除,至少在我的设备上是这样。