0

我正在尝试创建一个新的视图控制器,用于使用 UnityAds 和 Vungle(取决于可用的)向用户显示奖励视频。

在 Vungle 视频视图之后,我已经实现的VungleSDKDelegatewill callvungleSDKwillCloseAdWithViewInfo如下:

- (void)vungleSDKwillCloseAdWithViewInfo:(NSDictionary *)viewInfo willPresentProductSheet:(BOOL)willPresentProductSheet {
    NSLog(@"vungleSDKwillCloseAdWithViewInfo");

    [self finishVideoView];
}

并且finishVideoView作为:

- (void) finishVideoView {
    NSLog(@"finishVideoView");
    [self dismissViewControllerAnimated:YES completion:nil];
}

这很好用,完成后,视图控制器被关闭,应用程序恢复。但是,当我尝试在 Unity 的方法中执行此方法时UnityAdsDelegateunityAdsDidFinish视图控制器只是挂在那里并且从不关闭。

- (void)unityAdsDidFinish:(NSString *)placementId withFinishState:(UnityAdsFinishState)state{
    NSLog(@"unityAdsDidFinish");

    [self finishVideoView];
}

任何想法为什么?似乎unityAdsDidFinish回调发生在我点击完成视频顶部的 x 之后。

我认为这可能是时间问题,所以我也尝试这样做: [self performSelector:@selector(finishVideoView) withObject:nil afterDelay:1.0];

但这似乎也无济于事。

4

1 回答 1

0

我最终决定避免等待委托方法,而是finishVideoView在我的 ViewController 的viewWillAppear方法中实现。它现在似乎可以工作了 - 每当我的视图控制器再次出现时,它都会检查 BOOL 以查看是否播放了视频,如果是,则完成控制器。

于 2017-02-24T20:43:47.983 回答