大佬教程收集整理的这篇文章主要介绍了如何使用 SwiftUI App Cycle 在 SwiftUI 项目中实施 AdMob Open Ad?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用 Google 的文档在 SwiftUI 项目中实施 AdMob 开放式广告:https://developers.google.com/admob/ios/app-open-ads。问题是文档完全是使用 AppDelegate 编写的。
我尝试通过在@main 上方添加带有此方法的 AppDelegate 类来实现打开的广告,但它根本不起作用。没有错误,也没有广告。
class AppDelegate: UIResponder,UIApplicationDelegate,GADFullScreenContentDelegate {
let nc = NotificationCenter.default
func application(_ application: UIApplication,dIDFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
GADMobileAds.sharedInstance().start(completionHandler: nil)
return true
}
var appOpenAd: GADAppOpenAd?
var loadTime = Date()
func requestAppOpenAd() {
let request = GADrequest()
GADAppOpenAd.load(withAdUnitID: "ca-app-pub-3940256099942544/5662855259",request: request,orIEntation: UIInterfaceOrIEntation.porTrait,completionHandler: { (appOpenAdIn,_) in
self.appOpenAd = appOpenAdIn
self.appOpenAd?.fullScreenContentDelegate = self
self.loadTime = Date()
print("Ad is ready")
})
}
func trytopresentAd() {
if let gOpenAd = self.appOpenAd,let rwc = UIApplication.shared.windows.last!.rootVIEwController,wasLoadTimeLessthAnnHoursAgo(thresholdN: 4) {
gOpenAd.present(fromrootVIEwController: rwC)
} else {
self.requestAppOpenAd()
}
}
func wasLoadTimeLessthAnnHoursAgo(thresholdN: int) -> Bool {
let Now = Date()
let timeIntervalbetweenNowAndLoadTime = Now.timeIntervalSince(self.loadTimE)
let secondsPerHour = 3600.0
let intervalinHours = timeIntervalbetweenNowAndLoadTime / secondsPerHour
return intervalinHours < Double(thresholdN)
}
func applicationDIDBecomeActive(_ application: UIApplication) {
self.trytopresentAd()
}
func ad(_ ad: GADFullScreenPresenTingAd,dIDFailtopresentFullScreenContentWithError error: Error) {
requestAppOpenAd()
}
func adDIDdismissFullScreenContent(_ ad: GADFullScreenPresenTingAd) {
requestAppOpenAd()
}
func adDIDPresentFullScreenContent(_ ad: GADFullScreenPresenTingAd) {
print("Ad dID present")
}
}
如何在使用 SwiftUI App Cycle 而不是 AppDelegate 的 SwiftUI 项目中成功实施 AdMob 打开广告?
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的如何使用 SwiftUI App Cycle 在 SwiftUI 项目中实施 AdMob Open Ad?全部内容,希望文章能够帮你解决如何使用 SwiftUI App Cycle 在 SwiftUI 项目中实施 AdMob Open Ad?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。