IAD 生命周期 - 关闭广告将应用程序返回到初始屏幕

Posted

技术标签:

【中文标题】IAD 生命周期 - 关闭广告将应用程序返回到初始屏幕【英文标题】:IAD lifecycle - dismiss of ad sends app back to splash screen 【发布时间】:2014-04-25 13:13:50 【问题描述】:

我有一个简单的 spritekit 应用程序,初始化时 SKView 显示一个启动屏幕(场景),用户点击一个按钮,他们被带到主游戏场景。

一切正常,但想给它添加 iads,所以我在主场景中实例化了一个 adview,并将它的代理分配给主场景。

添加看起来很好,我点击它,它正确地显示了广告,但是我关闭了广告,当我这样做时,应用程序返回并看起来重新初始化了显示 Splash 场景的整个 SKVIEW,不是在委托调用中暂停的主要场景。

所以,当 IAD 被解除时,返回父应用程序的回调到底是什么,因为它清楚它不仅仅是委托方法,它返回并重新初始化视图等。基本上在我看来我需要在哪里捕获它从取消的广告中返回并正确处理这种情况。

【问题讨论】:

【参考方案1】:

听起来您正在运行 viewWillLayoutSubviews 中的场景,而没有检查场景是否已经在运行。确保启动代码看起来像这样,否则它会在 viewWillLayoutSubviews 方法运行时重新启动起始场景(它可以并且将会被多次调用,例如在旋转设备时以及显然在关闭广告时):

-(void)viewWillLayoutSubviews 

    SKView* skView = (SKView*)self.view;

    // only create/launch first scene when SKView has no running scene
    if (skView.scene == nil)
    
        // create and present scene here ...
    

    [super viewWillLayoutSubviews];

【讨论】:

以上是关于IAD 生命周期 - 关闭广告将应用程序返回到初始屏幕的主要内容,如果未能解决你的问题,请参考以下文章

iAD 视图在广告关闭时冻结

iAd 冻结游戏画面

关闭导航弹出框后,共享 iAd 横幅会卸载广告

小程序“刷新”的问题

使用 PhoneGap,并添加 iAd [关闭]

小程序生命周期