即使我添加了代理,iAd也无法正常工作

时间:2016-01-09 20:41:08

标签: ios swift iad

我正在添加一个iAd横幅,每当我关闭Wi-Fi时它就会显示为空白区域。 我在StackOverflow上发现了类似的问题,并提供了添加委托的说明 - 我已经做过了。 这是我的代码:

 func createIAd() {

    bannerView = ADBannerView(adType: .Banner)
    bannerView.translatesAutoresizingMaskIntoConstraints = false
    bannerView.delegate = self
    bannerView.hidden = true
    view.addSubview(bannerView)

    let viewsDictionary = ["bannerView": bannerView]
    view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[bannerView]|", options: [], metrics: nil, views: viewsDictionary))
    view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:[bannerView]|", options: [], metrics: nil, views: viewsDictionary))


}

func bannerViewDidLoadAd(banner: ADBannerView!) {

}

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
    dontShowAd = true
    print("NOAD!!!!")
    hideIAd()
}



func hideIAd() {
    bannerView.hidden = true

}

func showIAd() {
    if dontShowAd == false {
    bannerView.hidden = false
    }
}

1 个答案:

答案 0 :(得分:0)

看看你的代码,它说如果ADBannerView收到错误,请不要显示广告。

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
        dontShowAd = true
        print("NOAD!!!!")
        hideIAd()
    }

关闭无线网络是一个错误,因为您无法观看或下载没有wifi的添加内容,请考虑您是否真的希望您的用户在他们的应用中没有显示广告互联网连接无法获得任何利润,因为广告需要无线网络才能工作。这就是为什么它会向你展示一个空白的方块。但我不会质疑你想要完成什么,所以如果你想要显示广告,即使用户没有wifi,只需将你的布尔值更改为false。

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
        dontShowAd = false
        print("NOAD!!!!")
        hideIAd()
    }

但是如果你想在没有互联网的情况下隐藏横幅,你只需要添加这两个功能。假设横幅和ViewController之间的连接称为Banner。您可以删除仅

的其余代码
func bannerViewDidLoadAd(banner: ADBannerView!) {

self.Banner?hidden = false 
}

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
    self.Banner?hidden true
}
}