在iOS 13 Xcode 11中全屏展示插页式广告

时间:2019-10-10 09:53:02

标签: ios objective-c xcode admob interstitial

我刚刚将Xcode更新为11,并尝试在iOS 13设备上运行我的应用。我发现视图控制器没有全屏显示,但是我能够解决以下问题:Presenting modal in iOS 13 fullscreen

但是我也有一个问题,就是Admob插页式广告无法全屏显示。我将附上一个屏幕截图进行演示,您将看到顶部不在顶部。

这是我展示插页式广告的方式:

if (self.interstitial.isReady) {

    [self.interstitial presentFromRootViewController:self];

}

enter image description here

3 个答案:

答案 0 :(得分:0)

将演示模式更改为:

抱歉,我在Swift中写过,尽管在Objective-C中应该类似。

viewController.modalPresentationStyle = .fullScreen

viewController.modalPresentationStyle = .overFullScreen

在iOS 13上,我注意到默认的modalPresentationStyle.overCurrentContext.currentContext,它制作了怪异的动画并最小化了所显示的视图控制器的框架。

答案 1 :(得分:0)

我认为有一个简单的解决方案,您需要更新Google Mobile Ads SDK(吊舱更新或迦太基更新)。 Ads SDK:7.50.0,iOS 13支持的正式版本。

答案 2 :(得分:0)

这是非页内广告的基本帮助程序类,它不依赖于我的任何观点或模式实施。它将仅在rootViewController上展示广告,并且即使在横向模式下也可以为我工作,这也可以用于SwiftUI。否则请尝试一下。

import Foundation
import GoogleMobileAds
import UIKit
    
final class InterstitialAd : NSObject, GADInterstitialDelegate {
    var interstitial: GADInterstitial? = nil
    
    func LoadInterstitial() {
        interstitial = GADInterstitial(adUnitID: Constants.interstitialAdCode)
        let req = GADRequest()
        interstitial!.load(req)
        interstitial!.delegate = self
    }
    
    func showAd() {
        if let ad = self.interstitial, ad.isReady {
           let root = UIApplication.shared.windows.first?.rootViewController
           ad.present(fromRootViewController: root!)
        }
    }
}