我们显示了水平之间的间隙IAD。由于iAd似乎需要相当多的内存(我们过去在显示时会收到许多内存警告,并且遇到一些崩溃),因此在间隙关闭之前,我们不会加载新视图(因此,我们首先卸载游戏视图,然后显示间隙,然后加载游戏视图)。
为此,我们使用了旧的/不推荐的方式来展示插页:
>
分配ADINTERSTIIALAD并设置委托
_interstitial = [[ADInterstitialAd alloc] init];
_interstitial.delegate = self;
准备好后,在某些viewcontroller中显示广告:
[_interstitial presentFromViewController:_rootViewController];
聆听学员的方法,以检测用户何时关闭间隙广告:
- (void)interstitialAdActionDidFinish:(ADInterstitialAd *)interstitialAd
{
[self proceedToNextLevel];
}
这在iOS 7中曾经适用。然而,在iOS8中,虽然调用了大多数委托函数,但不会调用InterstitalAdactionDidFinish(InterstitalAddidUnload会被调用,但只会在5分钟后调用)。
因此,似乎有了一些通过UIViewController上的类别显示中间广告的新方法:https://developer.apple.com/library/ios/documentation/iAd/Reference/UIViewController_iAd_Additions/index.html#//apple_ref/occ/instm/UIViewController/shouldPresentInterstitialAd
所以新的方法是:
>
通过静态方法调用准备广告:
[UIViewController prepareInterstitialAds];
准备就绪后,请求显示广告:
_rootViewController.interstitialPresentationPolicy = ADInterstitialPresentationPolicyManual;
[_rootViewController requestInterstitialAdPresentation];
这确实显示了间隙-但是,由于不再有委托,因此无法判断用户何时关闭间隙。
所以问题是:在iOS8(也兼容iOS7)上,我们如何判断用户何时关闭了间隙广告?
//编辑:我还试图查询
viewController.isPresentingFullScreenAd
重复使用计时器,但虽然这在iOS 7上有效,但在iOS 8上,即使在用户关闭间隙广告后,属性也始终返回true
当一个间歇性的iAd关闭时,在您的VC中会调用viewDidEmerar。
下面是我如何实现。。。
当我想显示广告时,我会从我的SKScene调用以下代码。
MyScene.m
if ([viewController showIAd]) // attempting to show an ad
{
NSLog(@"showIAd returned YES, ad shown");
// Do nothing. Wait for viewDidAppear to be called.
}
else
{
// No ad was ready, do what needs to happen after ad.
}
当显示iAd时,我设置了一个名为currentlyShowingAnIAd的布尔值。当viewDidAppear运行时,它知道它是从广告返回的。
viewController.m
-(void)viewDidAppear:(BOOL)animated
{
NSLog(@"viewDidAppear");
if (self.currentlyShowingAnIAd)
{
self.currentlyShowingAnIAd = NO;
// Do what needs to happen after ad.
}
}
-(BOOL)showIAd
{
NSLog(@"showIAd method run");
self.currentlyShowingAnIAd = [self requestInterstitialAdPresentation];
return self.currentlyShowingAnIAd;
}
希望这有帮助:)
我正在我的项目中实施间隙IAD。每场比赛后,我都会尝试显示一个中间广告。然而,在我的测试中,我得到一个错误,即大约10场比赛后,中间广告太多了。如何删除这些插入式广告? 代码: 此外,我还试图在每次比赛结束后播放一则插播广告。然而,有时没有显示广告,我认为这是正常的,因为广告库存可能并不总是可用的。因此,游戏通常在结束时不显示广告。 是否有一种方法,我可以检测到是否不会显示间隙广告,以便我可以使用
问题内容: 我正在尝试在我的c程序中检测从Linux关闭或重新启动。我发现程序可以使用signal(SIGTERM,handler)(SIGKILL,handler)。但是,如果用户也使用命令杀死该进程,这两个触发器也会触发。 他们说,在某些解决方案中,可以使用运行级别,但无法运行。在系统初始化运行级别之前,不知道该进程是否被杀死。我什至尝试将脚本放在rcx.d中,但仍然无法正常工作。 有人建议吗
我有显示iBeacon信息的文本视图(例如uuid、major、minor等)和一个用于启动/停止扫描的检测/停止按钮。当我在iBeacon关闭的情况下按下按钮开始扫描时,应用程序没有显示预期的内容。但是,当我在iBeacon打开时开始扫描,然后在扫描时关闭iBeacon时,应用程序仍会显示信息,就好像它仍在检测iBeacon一样。当应用程序在信标打开的情况下扫描BLE时,它会给出 D/Bluet
问题内容: 我有一个通过Apache https proxypass在Tomcat上运行的Java Spring Web应用程序,当它尝试访问安全的IBM Watson服务时间歇性地失败。Apache通过LetsEncrypt证书进行安全保护,该证书重定向到Tomcat端口8080。 环境: Java:jdk1.7.0_80 Solaris 10 Tomcat 8.0.33 Apache2.4.1
我已经编写了一个程序,从usb摄像头捕获图像,并根据检测到的每帧颜色跟踪对象的位置。间歇性(可能在1分钟、10分钟或半小时后发生)我收到错误消息: 我遵循的流程是: 用相机拍摄一帧,cap=cv2。视频捕获(1)/cap。read() 变换几何,cv2。透视图 高斯模糊滤波器,cv2。高斯模糊 BGR到HSV转换,cv2。CVT彩色(模糊帧,cv2.COLOR\u BGR2HSV) 轮廓发现和分析
我对Java还很陌生,我试着查了一下,但没有找到任何有用的东西。我想知道我怎么能检测到一个特定的窗口关闭了?我一直在使用windowClosing(),但这适用于关闭的任何窗口,因此如果窗口B关闭,我希望由于窗口a关闭而发生的事件也会发生。我如何只在窗口A关闭的情况下进行检测?抱歉,如果这是一个糟糕的措辞,我不知道那么多Java术语。提前致谢:)