我正在尝试在我的sprite kit skscene中添加Vungle视频广告。我有一个sprite节点,点击时,应该加载广告。 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。有人可以指导我吗?
答案 0 :(得分: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,你的触摸开始方法做这个
- (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.
}
}
在这里,我们向观看控制器发送消息以播放丛林广告。现在,当您在场景中触摸“硬币”skspritenode时,它应播放视频广告。