程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何使用 SwiftUI App Cycle 在 SwiftUI 项目中实施 AdMob Open Ad?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何使用 SwiftUI App Cycle 在 SwiftUI 项目中实施 AdMob Open Ad??

开发过程中遇到如何使用 SwiftUI App Cycle 在 SwiftUI 项目中实施 AdMob Open Ad?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何使用 SwiftUI App Cycle 在 SwiftUI 项目中实施 AdMob Open Ad?的解决方法建议,希望对你解决如何使用 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,请注明来意。