AdMobADビューコントローラーは開いた直後に閉じます

dmo

長い間潜んでいて、迅速な開発に入っています。サンプルアプリを作成しましたが、現在、その前にログインしてAdMobをテストしようとしています。これが私のコードです:

AppDelegate.swift

import UIKit
import Firebase
import GoogleMobileAds

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        FirebaseApp.configure()
        GADMobileAds.configure(withApplicationID: "ca-app-pub-3940256099942544~1458002511")
        return true
    }



}

ViewController.swift

import UIKit
import FirebaseAuth

class ViewController: UIViewController {

    @IBOutlet weak var emailTextField: UITextField!
    @IBOutlet weak var passwordTextField: UITextField!
    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func viewDidAppear(_ animated: Bool) {
        if(Auth.auth().currentUser != nil)
        {
            self.presentLoggedInScreen()
        }
    }

    @IBAction func createAccountTapped(_ sender: Any)
    {
            if let email = emailTextField.text, let password = passwordTextField.text{
                Auth.auth().createUser(withEmail: email, password: password, completion: { user, error in
                    if let firebaseError = error {
                        let alert = UIAlertController(title: "Error", message: firebaseError.localizedDescription, preferredStyle: .alert)
                        alert.addAction(UIAlertAction(title: NSLocalizedString("OK", comment: "Default action"), style: .`default`, handler: { _ in
                        }))
                        self.present(alert, animated: true, completion: nil)
                        return
                    }
                    self.presentLoggedInScreen()
                })
            }

    }

    @IBAction func loginTapped(_ sender: Any)
    {
        if let email = emailTextField.text, let password = passwordTextField.text{
            Auth.auth().signIn(withEmail: email, password: password, completion: { user, error in
                if let firebaseError = error {
                    let alert = UIAlertController(title: "Error", message: firebaseError.localizedDescription, preferredStyle: .alert)
                    alert.addAction(UIAlertAction(title: NSLocalizedString("OK", comment: "Default action"), style: .`default`, handler: { _ in
                    }))
                    self.present(alert, animated: true, completion: nil)
                    return
                }
                self.presentLoggedInScreen()
            })
        }

    }

    func presentLoggedInScreen()
    {
        let storyboard:UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let loggedInVC:LoggedInVC = storyboard.instantiateViewController(withIdentifier: "LoggedInVC") as! LoggedInVC
        self.present(loggedInVC, animated: true, completion: nil)
    }


}

LoggedInVC.swift

import UIKit
import FirebaseAuth
import GoogleMobileAds

class LoggedInVC: UIViewController, GADRewardBasedVideoAdDelegate {

    @IBOutlet weak var showAdButton: UIButton!
    @IBOutlet weak var logLabel: UILabel!
    var rewardBasedAd: GADRewardBasedVideoAd!

    override func viewDidLoad() {
        super.viewDidLoad()
        logLabel.text = ""
        showAdButton.isEnabled = false

        rewardBasedAd = GADRewardBasedVideoAd.sharedInstance()
        rewardBasedAd.delegate = self
        rewardBasedAd.load(GADRequest(), withAdUnitID: "ca-app-pub-3940256099942544/1712485313")
    }

    @IBAction func logoutTapped(_ sender: Any) {
        do{
           try Auth.auth().signOut()
           dismiss(animated: true, completion: nil)
        } catch{
            print("Problem logging out!");
        }
    }

    @IBAction func buttonPressed(_ sender: Any) {
        showAdButton.isEnabled = false
        if rewardBasedAd.isReady {
            rewardBasedAd.present(fromRootViewController: self)
        }
    }

    func rewardBasedVideoAdDidOpen(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
        logLabel.text?.append("An ad opened. \n")
    }

    func rewardBasedVideoAdDidClose(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
        logLabel.text?.append("An ad closed. \n")
    }

    func rewardBasedVideoAdDidReceive(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
        logLabel.text?.append("An ad has loaded. \n")
        showAdButton.isEnabled = true
    }

    func rewardBasedVideoAdDidStartPlaying(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
        logLabel.text?.append("An ad started playing. \n")
    }

    func rewardBasedVideoAdWillLeaveApplication(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
        logLabel.text?.append("An ad caused focus to leave. \n")
    }

    func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd, didFailToLoadWithError error: Error) {
        logLabel.text?.append("An ad has failed to load. \n")
        print(error)
    }

    func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd, didRewardUserWith reward: GADAdReward) {
        print("Ad finished.")
    }
}

今、誰かが私が解決策を研究しなかったと言う前に、私を信じて、私は試みました。これは本当に私を妨げています、なぜこれが起こっているのかについて本当に確信が持てません。それは誰かにとって簡単な修正かもしれませんが、初心者としての答えは私には明白ではありません:(。

何が起こっているのかをビデオで投稿しますが、基本的には広告の音声が再生され、実際の広告が画面に表示されたままになったり、ラベルに更新が追加されたりすることはありません。これに関するどんな助けも非常にありがたいです、これは素晴らしいコミュニティです。

https://www.youtube.com/watch?v=BlUjPA_AwZQ&feature=youtu.be

ハーシャッド・パテル

このコードを使用してください....そのコードは機能しています....

@IBAction func buttonPressed(_ sender: Any) {
    //showAdButton.isEnabled = false
    if rewardBasedAd.isReady {
        self.dismiss(animated: false) { () -> Void in
            rewardBasedAd.present(fromRootViewController: self)
        }
    }
    else {
        print("Ad wasn't ready")
    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

新しいビューコントローラーを提示した後、現在のビューコントローラーを閉じます-迅速

分類Dev

ビューコントローラが閉じられた後にアラートを表示する方法

分類Dev

送信側ビューコントローラが閉じられた後にセグエを実行する

分類Dev

Swift-ビューを閉じて再度開いた後、アレイは常にリセットされます

分類Dev

モーダルビューコントローラーによって提示されたUIAlertControllerを閉じます

分類Dev

ダイアログは開いた直後に閉じます

分類Dev

ビューコントローラを閉じて、その親ビューコントローラに戻るにはどうすればよいですか?

分類Dev

ビューコントローラを閉じて、その親ビューコントローラに戻るにはどうすればよいですか?

分類Dev

セグエの後にビューコントローラーを閉じる

分類Dev

セグエの後にビューコントローラーを閉じる

分類Dev

ビューコントローラを閉じた後、SwiftviewWillAppearが呼び出されない

分類Dev

モーダルビューコントローラーを閉じた後、フレームに自動レイアウトの制約が反映されない

分類Dev

dismissViewControllerAnimated()はビューコントローラーを閉じません

分類Dev

Swift2:現在のビューコントローラーを閉じて、新しいビューコントローラーを表示します

分類Dev

'Workbook.open'エラー-ファイルを開いた直後にファイルを閉じます

分類Dev

閉じた状態と同じビューコントローラで開く(スイフト)

分類Dev

SwiftUIでモーダルビューコントローラーが閉じないようにする

分類Dev

ビューコントローラを閉じますが、下にあるビューコントローラを「準備」します

分類Dev

セカンダリビューコントローラーを閉じた後、AppleWatchからメッセージ/データを受信し続けるにはどうすればよいですか?

分類Dev

提示されたビューコントローラが閉じられた後、メインコントローラの関数を呼び出す

分類Dev

Dmenuによって起動された特定のプログラムは、開いた直後に閉じます

分類Dev

モードで提示されたビューコントローラーを閉じた後にタブバーコントローラービューコントローラーを切り替える

分類Dev

ナビゲーションバーがiPhoneXSMaxのビューコントローラーを閉じるときにビューをカットします

分類Dev

paramsでexeを起動しますが、プログラムは開いた直後に閉じますか?

分類Dev

次のビューコントローラーがモーダルに表示されたらすぐに、以前のモーダルに表示されたビューコントローラーを閉じるか削除します

分類Dev

PlacePicker.IntentBuilderは、開いた直後に閉じます

分類Dev

Python Web Socketは、開いた直後に閉じます

分類Dev

ナビゲーションドロワーを閉じた後にフラグメントを開く方法

分類Dev

ナビゲーションドロワーを閉じた後にフラグメントを開く方法

Related 関連記事

  1. 1

    新しいビューコントローラーを提示した後、現在のビューコントローラーを閉じます-迅速

  2. 2

    ビューコントローラが閉じられた後にアラートを表示する方法

  3. 3

    送信側ビューコントローラが閉じられた後にセグエを実行する

  4. 4

    Swift-ビューを閉じて再度開いた後、アレイは常にリセットされます

  5. 5

    モーダルビューコントローラーによって提示されたUIAlertControllerを閉じます

  6. 6

    ダイアログは開いた直後に閉じます

  7. 7

    ビューコントローラを閉じて、その親ビューコントローラに戻るにはどうすればよいですか?

  8. 8

    ビューコントローラを閉じて、その親ビューコントローラに戻るにはどうすればよいですか?

  9. 9

    セグエの後にビューコントローラーを閉じる

  10. 10

    セグエの後にビューコントローラーを閉じる

  11. 11

    ビューコントローラを閉じた後、SwiftviewWillAppearが呼び出されない

  12. 12

    モーダルビューコントローラーを閉じた後、フレームに自動レイアウトの制約が反映されない

  13. 13

    dismissViewControllerAnimated()はビューコントローラーを閉じません

  14. 14

    Swift2:現在のビューコントローラーを閉じて、新しいビューコントローラーを表示します

  15. 15

    'Workbook.open'エラー-ファイルを開いた直後にファイルを閉じます

  16. 16

    閉じた状態と同じビューコントローラで開く(スイフト)

  17. 17

    SwiftUIでモーダルビューコントローラーが閉じないようにする

  18. 18

    ビューコントローラを閉じますが、下にあるビューコントローラを「準備」します

  19. 19

    セカンダリビューコントローラーを閉じた後、AppleWatchからメッセージ/データを受信し続けるにはどうすればよいですか?

  20. 20

    提示されたビューコントローラが閉じられた後、メインコントローラの関数を呼び出す

  21. 21

    Dmenuによって起動された特定のプログラムは、開いた直後に閉じます

  22. 22

    モードで提示されたビューコントローラーを閉じた後にタブバーコントローラービューコントローラーを切り替える

  23. 23

    ナビゲーションバーがiPhoneXSMaxのビューコントローラーを閉じるときにビューをカットします

  24. 24

    paramsでexeを起動しますが、プログラムは開いた直後に閉じますか?

  25. 25

    次のビューコントローラーがモーダルに表示されたらすぐに、以前のモーダルに表示されたビューコントローラーを閉じるか削除します

  26. 26

    PlacePicker.IntentBuilderは、開いた直後に閉じます

  27. 27

    Python Web Socketは、開いた直後に閉じます

  28. 28

    ナビゲーションドロワーを閉じた後にフラグメントを開く方法

  29. 29

    ナビゲーションドロワーを閉じた後にフラグメントを開く方法

ホットタグ

アーカイブ