1

我正在尝试在我的 sprite kit skscene 中添加 Vungle 视频广告。我有一个精灵节点,当点击它时,应该加载广告。Vungle https://github.com/Vungle/vungle-resources/blob/master/iOS-resources/iOS-dev-guide.md提供的指南展示了如何通过视图控制器放置广告。

VungleSDK* sdk = [VungleSDK sharedSDK];
[sdk playAd:self];

我有不同的 SKScene,我想在场景中播放广告而不是视图控制器。我怎样才能实现它。

以下是我的 SKScene 代码,其中用户单击 SKSpriteNode 并且我希望加载广告。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
for (UITouch *touch in touches) {
    SKNode *n = [self nodeAtPoint:[touch locationInNode:self]];
    if ( [n.name isEqual: @"play"]) {
        [self levelSelect];
    }
    else if( [n.name isEqual: @"coins"]){
        VungleSDK* sdk = [VungleSDK sharedSDK];
        [sdk playAd:self.view]; //TODO
    }
}

这会产生错误,因为我没有将视图控制器传递给方法 playAd。有人可以指导我吗?

4

1 回答 1

2

解决了这个问题,所以如果其他人遇到同样的问题,这里是解决方案: -

在您的视图控制器中,在 viewDidLoad 方法中执行此操作

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotification:) name:@"playVungle" object:nil];

也创建一个方法

-(void)playVungleAd{
  VungleSDK* sdk = [VungleSDK sharedSDK];
  [sdk playAd:self];
}

不要忘记导入 VungleSDK/VungleSDK.h 现在在您的 skscene 中,在您的 touches 开始方法中执行此操作

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
for (UITouch *touch in touches) {
    SKNode *n = [self nodeAtPoint:[touch locationInNode:self]];
    if ( [n.name isEqual: @"play"]) {
        [self levelSelect];
    }
    else if( [n.name isEqual: @"coins"]){
        [[NSNotificationCenter defaultCenter] postNotificationName:@"playVungle" object:nil]; //Sends message to viewcontroller to show ad.
    }

}

在这里,我们向视图控制器发送消息以播放 vungle 广告。现在,当您在场景中触摸“硬币”skspritenode 时,它​​应该会播放视频广告。

于 2014-10-26T12:21:48.263 回答