Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在IOS中使用Webview时,Admob不显示广告_Ios_Swift_Webview_Uiwebview_Admob - Fatal编程技术网

在IOS中使用Webview时,Admob不显示广告

在IOS中使用Webview时,Admob不显示广告,ios,swift,webview,uiwebview,admob,Ios,Swift,Webview,Uiwebview,Admob,我正在用IOS Xcode开发一个基本的混合应用程序。在应用程序中,我有一个UIWebview和一个带按钮的底部工具栏。当用户单击工具栏按钮时,我想显示间隙广告和更改webview url。但广告并没有显示“广告还没有准备好”的信息 如果我删除webview,广告就会正确出现 那么为什么webview中没有广告呢?我在GooglePlay上有同样的android应用程序,它运行得很好 import UIKit import GoogleMobileAds class ViewController

我正在用IOS Xcode开发一个基本的混合应用程序。在应用程序中,我有一个UIWebview和一个带按钮的底部工具栏。当用户单击工具栏按钮时,我想显示间隙广告和更改webview url。但广告并没有显示“广告还没有准备好”的信息

如果我删除webview,广告就会正确出现

那么为什么webview中没有广告呢?我在GooglePlay上有同样的android应用程序,它运行得很好

import UIKit
import GoogleMobileAds
class ViewController: UIViewController {

var interstitial:   GADInterstitial!  

@IBOutlet weak var webView: UIWebView!

var phoneLang = "en"

@IBAction func historyBtn(_ sender: Any) {
    displayAds()
   //todo: set webview url to go history page
  }

@IBAction func favoritesBtn(_ sender: Any) {
    displayAds()
    //todo: set webview url to go favorites page
}
override func viewDidLoad() {
    super.viewDidLoad()

    phoneLang = NSLocale.preferredLanguages[0]

    let index = phoneLang.index(phoneLang.startIndex, offsetBy: 2)
    phoneLang = phoneLang.substring(to: index)        
    UserDefaults.standard.register(defaults: ["UserAgent": "MobileApp"])

    let xurl = URL(string: "https://www.sozcukcevir.com")
    let request = URLRequest(url: xurl!)        
    webView.loadRequest(request)        
    createAds()
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


fileprivate func createAds() {
    createAndLoadInterstitial()        
}

fileprivate func displayAds() {        
    if interstitial.isReady {
        interstitial.present(fromRootViewController: self)
    } else {
        print("Ad wasn't ready")
    }       
}

fileprivate func createAndLoadInterstitial() {
    interstitial = GADInterstitial(adUnitID: "ca-app-pub-5181306594932785/7917067758")
    let request = GADRequest()        
    request.testDevices = [ kGADSimulatorID, "2077ef9a63d2b398840261c8221a0c9a" ]
    interstitial.load(request)
  } 
}

它是关于浏览器用户代理的。如果我更换了用户代理,广告就不会出现了。Admob需要公共用户代理来显示广告

当我评论这段代码或将用户代理设置为已知浏览器的值时,admob ads运行良好

UserDefaults.standard.register(defaults: ["UserAgent": "MobileApp"])
致:


你解决了吗?是的。看看下面我的答案。
// UserDefaults.standard.register(defaults: ["UserAgent": "MobileApp"])