- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 Apple 的插页式广告有疑问。我正在 swift 开发我的第一个应用程序,我想尽快把它放到 App store 上。但是当我将插页式广告的代码从 obejctive-c 重写为 swift 时,我能够显示广告,但我没有 X 关闭按钮,所以我无法关闭它。我没有找到任何地方,我应该自己放置这个按钮,默认情况下它应该在那里。我正在使用这个功能:(我还不得不说,我正在使用 sprite kit,所以我的 View Controller 会自动将游戏重定向到 Gamescene)
func showFullScreenAd() {
if requestingAd == false {
interstitial = ADInterstitialAd()
interstitial!.delegate = self
requestingAd = true
}
}
func interstitialAd(interstitialAd: ADInterstitialAd!, didFailWithError error: NSError!) {
self.interstitial = nil
requestingAd = false
}
func interstitialAdDidLoad(interstitialAd: ADInterstitialAd!) {
if interstitialAd != nil && self.interstitial != nil && self.requestingAd == true {
interstitial!.presentInView(self.view)
}
}
func interstitialAdDidUnload(interstitialAd: ADInterstitialAd!) {
interstitial = nil
requestingAd = false
}
func interstitialAdActionDidFinish(interstitialAd: ADInterstitialAd!) {
interstitial = nil
requestingAd = false
}
谢谢帮助(这里是图片:http://imgur.com/jKTWRiG)
-----更新-----这是解决方案,可以正常工作。我制作了 UIView,其中我展示了广告和关闭按钮(背景上有一些交叉图像)。这可能不是最好的解决方案,但应用商店接受了,soooo :D
所有这些功能都放在 GameViewController.swift 中(你不能简单地从 spritekit 场景控制 View Controller ,你可以通过 gameviewcontroller 的单例,这取决于你)
func showFullScreenAd() {
if requestingAd == false {
interstitial = ADInterstitialAd()
interstitial!.delegate = self
requestingAd = true
}
}
func interstitialAd(interstitialAd: ADInterstitialAd!, didFailWithError error: NSError!) {
self.interstitial = nil
requestingAd = false
}
func interstitialAdDidLoad(interstitialAd: ADInterstitialAd!) {
if interstitialAd != nil && _interstitial != nil && requestingAd == true {
self._adView = UIView()
self._adView!.frame = self.view.bounds
self.view.addSubview(_adView!)
self.button = UIButton(frame: CGRect(x: 10, y: 10, width: 40, height: 40))
self.button!.setBackgroundImage(UIImage(named: "close_button"), forState: UIControlState.Normal)
self.button!.addTarget(self, action: Selector("close"), forControlEvents: UIControlEvents.TouchDown)
self.view.addSubview(button!)
_interstitial!.presentInView(self._adView)
requestingAd = false
}
UIViewController.prepareInterstitialAds()
}
func close() {
self._adView!.removeFromSuperview()
self.button!.removeFromSuperview()
self._interstitial = nil
}
func interstitialAdDidUnload(interstitialAd: ADInterstitialAd!) {
interstitial = nil
requestingAd = false
self._adView!.removeFromSuperview()
self.button!.removeFromSuperview()
}
func interstitialAdActionDidFinish(interstitialAd: ADInterstitialAd!) {
interstitial = nil
requestingAd = false
self._adView!.removeFromSuperview()
self.button!.removeFromSuperview()
}
最佳答案
iOS 9.2.1,Xcode 7.2.1,启用 ARC
我用的是老方法:
[interstitial presentFromViewController:self];
否则,状态栏仍然使用容器 View 显示在 View 中,并且没有“X”按钮,或者您使用 Apple 建议的方法没有回调,即:
[self requestInterstitialAdPresentation];
[interstitial presentInView:self.view];
如果它困扰你,你可以抑制警告:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
//method goes here
#pragma clang diagnostic pop
请阅读这篇文章:iOS 7 iAd interstitial ads can not be closed by user
我所做的是将演示文稿包含在这样的方法中,在某些条件下添加一些润色:
*.h
#import <UIKit/UIKit.h>
#import <iAd/iAd.h>
#import <AssetsLibrary/AssetsLibrary.h>
@interface MainViewController : UIViewController <ADInterstitialAdDelegate>
{
ADInterstitialAd *interstitial;
}
@end
*.m
- (void)viewDidLoad
{
[super viewDidLoad];
[UIViewController prepareInterstitialAds];
self.interstitialPresentationPolicy = ADInterstitialPresentationPolicyManual;
interstitial = [[ADInterstitialAd alloc] init];
interstitial.delegate = self;
}
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- (void)presentInterlude
{
if (interstitial.loaded && [self shouldPresentInterstitialAd])
{
[interstitial presentFromViewController:self];
}
else
{
nil;
}
}
#pragma clang diagnostic pop
- (void)cycleInterstitial
{
interstitial.delegate = nil;
interstitial = [[ADInterstitialAd alloc] init];
interstitial.delegate = self;
}
- (void)interstitialAdDidLoad:(ADInterstitialAd *)interstitialAd
{
NSLog(@"loaded");
nil;
}
- (void)interstitialAdDidUnload:(ADInterstitialAd *)interstitialAd
{
NSLog(@"unloaded");
[self cycleInterstitial];
}
- (void)interstitialAd:(ADInterstitialAd *)interstitialAd didFailWithError:(NSError *)error
{
NSLog(@"failed, error: %@", error);
[self cycleInterstitial];
}
- (void)interstitialAdActionDidFinish:(ADInterstitialAd *)interstitialAd
{
NSLog(@"finish");
}
- (BOOL)interstitialAdActionShouldBegin:(ADInterstitialAd *)interstitialAd willLeaveApplication:(BOOL)willLeave
{
NSLog(@"action");
return true;
}
@end
然后在您准备好展示插页式广告时使用[self presentInterlude]
。
要使用“X”按钮(无需用户单击广告内容)告知广告何时显示以及广告何时关闭,您必须利用广告显示 viewDidDissapear 的事实:
被调用,当广告关闭时 viewDidAppear:
被调用。如果您有一些内容需要在调用 viewDidAppear:
之前准备好,请使用 viewWillAppear:
方法。
不要忘记在每次呈现后循环插页,插页广告对象在呈现后释放,这是插页式广告与横幅广告最大的区别。
如果有人有更好的解决方案,请分享并发布!
谢谢!干杯。
关于ios - interstitialAd - iOS 8 beta 5 不在模拟器中提供 X 关闭按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25285344/
我正在尝试将我的数据拟合为 beta 二项式分布并估计 alpha 和 beta 形状参数。对于此分布,先验取自 beta 分布。 Python 没有适用于 beta-binomial 的函数,但它适
正在使用 Material-UI 的测试版对于具有大量内容的 React 网络应用程序的长期愿景,如果必须使用 beta 功能并且使用遵循 Google Material 设计指南的 UI 库是一个好
嗨!我正在尝试实现 alpha-beta 搜索,但我首先想了解其背后的所有逻辑,而不仅仅是使用某种伪代码来实现它。 我的理解是:一个白人玩家下了一步棋(我们称它为 move1)。第一步被保存为 alp
将应用程序升级到 watchOS 3 beta 2 后,我无法在 Apple Watch 上运行我的应用程序。 最佳答案 遇到了同样的问题。我使用模拟器构建并运行该应用程序以确保该应用程序正常,然后再
我遇到了一个很奇怪的问题。在应用程序启动时,我调用 API 来获取 token 。它在 iOS 12 之前运行良好。但是,在 iOS 13 beta 版本上,没有调用完成关闭并且应用程序不断积累内存并
我需要我的 beta 测试人员有 beta 应用程序让他们测试它,但同时他们必须让生产应用程序在生产中工作。 问题是,如果他们成为 beta 测试者,似乎只能从 Google Play 获得 beta
我需要我的 beta 测试人员有 beta 应用程序让他们测试它,但同时他们必须让生产应用程序在生产中工作。 问题是,如果他们成为 beta 测试者,似乎只能从 Google Play 获得 beta
我的 iPhone 6s 和第一代 Apple Watch 都注册了开发者测试版。 我从两台设备中删除了 beta 配置文件。 watch 现在在 OS 3.0 (14S326) 上,但在两个设备多次
我有一个应用程序,我的客户会在每个主要开发步骤中通过分布式临时*(邮寄 x.ipa + x.mobileprovision 文件)持续审查。 在 8 月 mobileprovisioning 配置文件
我正在使用 fabric 进行 Beta 测试。 我从 Crashlytics 收到了有关 Beta 版应用程序的通知。标题为“XXX v1.0.0(5)已准备好测试”。 我希望我能在安装页面上看到一
它不应该返回一个 DRAW 吗? def alphabeta(alpha, beta, player) best_score = -INFINITY if not self.h
我正在使用网格搜索来优化适合平衡数据集的随机森林的超参数,我正在为选择哪个模型评估指标而苦恼。考虑到这个问题的现实背景,假阴性比假阳性代价更高。我最初尝试优化召回率,但最终得到了非常多的误报。我的解决
我正在运行交叉验证算法来找到最适合每天变化的数据的多项式。我想找到一种在简单图中显示拟合的不麻烦的方法,而不必每次都手动编写整个回归公式和绘图的 beta 系数。对于回归公式,求解很简单,我使用 sp
我正在运行交叉验证算法来找到最适合每天变化的数据的多项式。我想找到一种在简单图中显示拟合的不麻烦的方法,而不必每次都手动编写整个回归公式和绘图的 beta 系数。对于回归公式,求解很简单,我使用 sp
我有最新的Xcode 11 beta 5,其中包括iOS 13 beta 5模拟器。今天,苹果发布了iOS 13 beta 6,但没有发布新的Xcode 11 beta。 我可以以某种方式下载/更新X
我正在研究来自 wiki.commonjs.org 的异步模块定义我想知道这段代码的含义是什么。 特别是,我的问题是: return beta.verb();和return require("beta
如果我的 Perl 代码有生产代码位置和“测试版”代码位置(例如,生产 Perl 代码在 /usr/code/scripts 中,BETA Perl 代码在 /usr/code/beta/script
虽然我了解 MiniMax 树和 alpha-beta 修剪概念,但我不明白为什么在许多(例如维基百科)有关 alpha-beta 修剪的资源中存在像 α >= β 这样的条件。具体来说,equals
我正在根据我大学项目的客户反馈对在线内容进行排名。为此,我将每个内容与先前的 alpha 和 beta 参数相关联,并根据我得到的反馈更新这些内容。 随着我模拟越来越多的试验,alpha 和 beta
从 Apple 网站下载并安装 Xcode 9 beta 2 后,它无法在 Sierra OS X 版本 10.12.5 上启动,并报告以下错误: Process: Xcode [4789] Path
我是一名优秀的程序员,十分优秀!