2017-08-27 113 views
0

我用Xcode(swift)制作了一个应用程序,并且我在应用中实施了AdMob插页式广告,但我知道要显示广告的唯一方法是点击按钮,广告会显示想要在没有任何按钮点击的情况下在webView中展示广告,就像在某人在几秒钟后向下滚动广告就会弹出一样。那可能吗?显示无按钮的AdMob插页式广告点击ios

这是什么我目前使用的

var interstital: GADInterstitial! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 


    interstital = GADInterstitial(adUnitID: "") 

    let request = GADRequest() 
    interstital.load(request) 
} 

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

@IBAction func Ad(_ sender: Any) { 

    if (interstital.isReady) { 

     interstital.present(fromRootViewController: self) 
     interstital = CreateAd() 
    } 

} 



func CreateAd() -> GADInterstitial { 

    let interstital = GADInterstitial (adUnitID: "") 
    interstital.load(GADRequest()) 
    return interstital 
} 

回答

0

要做到这一点,你可以在一定时间量之后使用定时器,它允许你在你的情况下,执行功能,CreateAd()。在下面的示例中,我会在20-200秒后显示插页式广告。要更改最小和最大间隔,只需更改这些数字即可。我也删除了每次重新声明插页式广告的部分,因为在viewDidLoad中设置一次就足够了。

class YourViewController: UIViewController { 
    var interstital: GADInterstitial! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     interstital = GADInterstitial(adUnitID: "") 

     let request = GADRequest() 
     interstital.load(request) 

     let randomTime = Double(arc4random() + 20).truncatingRemainder(dividingBy: 200.0) 
     Timer.scheduledTimer(timeInterval: randomTime, target: self, selector: #selector(YourViewController.CreateAd), userInfo: nil, repeats: false) 


    } 
    func CreateAd() -> GADInterstitial { 

     if (interstital.isReady) { 

      interstital.present(fromRootViewController: self) 
      let randomTime = Double(arc4random() + 20).truncatingRemainder(dividingBy: 200.0) 
      Timer.scheduledTimer(timeInterval: randomTime, target: self, selector: #selector(YourViewController.CreateAd), userInfo: nil, repeats: false) 
     } 
    } 
} 

我只好窝,而不是设置repeats为true的间隔随机每次做定时器。

+0

您好先生,但我看到的错误,不能转换类型的值“Timeinterval.Type”(又名“Double.Type)预期的参数类型‘’一个时间间隔”(又名“双') –

+0

首先感谢我迟到的回复。我看到我忘记更新最后一行,现在应该可以解决问题。 – Eric

0

使用定时器,这里是目标c的实现。这里新的随机计时器将在20秒到200秒内发射,一旦添加关闭。

self.interstitial = [self createAndLoadInterstitial]; 

double time = (arc4random() % 200) + 20; 
[NSTimer scheduledTimerWithTimeInterval:time target:self selector:@selector(showAdIfReady) userInfo:nil repeats:NO]; 
- (void)showAdIfReady { 
    if (self.interstitial.isReady) { 
     [self.interstitial presentFromRootViewController:self]; 

    } else { 
     NSLog(@"Ad wasn't ready"); 
    } 

} 
- (void)interstitialDidDismissScreen:(GADInterstitial *)interstitial { 
    self.interstitial = [self createAndLoadInterstitial]; 
    double time = (arc4random() % 200) + 20; 
    [NSTimer scheduledTimerWithTimeInterval:time target:self selector:@selector(showAdIfReady) userInfo:nil repeats:NO]; 
} 
相关问题