iOS ViewController UnityAds 视频观看后未关闭
iOS ViewController Not Dismissing After UnityAds Video View
我正在尝试创建一个新的视图控制器,用于使用 UnityAds 和 Vungle(取决于哪个可用)向用户显示奖励视频。
观看 Vungle 视频后,VungleSDKDelegate
将调用 vungleSDKwillCloseAdWithViewInfo
,我已将其实现为:
- (void)vungleSDKwillCloseAdWithViewInfo:(NSDictionary *)viewInfo willPresentProductSheet:(BOOL)willPresentProductSheet {
NSLog(@"vungleSDKwillCloseAdWithViewInfo");
[self finishVideoView];
}
和finishVideoView
为:
- (void) finishVideoView {
NSLog(@"finishVideoView");
[self dismissViewControllerAnimated:YES completion:nil];
}
这很好用,当它完成时,视图控制器被关闭并且应用程序恢复。但是,当我尝试在 Unity UnityAdsDelegate
的方法 unityAdsDidFinish
中执行此方法时,视图控制器就挂在那里,从不关闭。
- (void)unityAdsDidFinish:(NSString *)placementId withFinishState:(UnityAdsFinishState)state{
NSLog(@"unityAdsDidFinish");
[self finishVideoView];
}
知道为什么吗? unityAdsDidFinish
回调似乎是在我点击完成视频顶部的 x 后立即发生的。
我认为这可能是时间问题,所以我也尝试这样做:
[self performSelector:@selector(finishVideoView) withObject:nil afterDelay:1.0];
但这似乎也无济于事。
我最终决定避免等待委托方法,而是在 ViewController 的 viewWillAppear
方法中实现 finishVideoView
。它现在似乎可以工作 - 每当我的视图控制器再次出现时,它会检查 BOOL 以查看是否播放了视频,如果是,它会完成控制器。
我正在尝试创建一个新的视图控制器,用于使用 UnityAds 和 Vungle(取决于哪个可用)向用户显示奖励视频。
观看 Vungle 视频后,VungleSDKDelegate
将调用 vungleSDKwillCloseAdWithViewInfo
,我已将其实现为:
- (void)vungleSDKwillCloseAdWithViewInfo:(NSDictionary *)viewInfo willPresentProductSheet:(BOOL)willPresentProductSheet {
NSLog(@"vungleSDKwillCloseAdWithViewInfo");
[self finishVideoView];
}
和finishVideoView
为:
- (void) finishVideoView {
NSLog(@"finishVideoView");
[self dismissViewControllerAnimated:YES completion:nil];
}
这很好用,当它完成时,视图控制器被关闭并且应用程序恢复。但是,当我尝试在 Unity UnityAdsDelegate
的方法 unityAdsDidFinish
中执行此方法时,视图控制器就挂在那里,从不关闭。
- (void)unityAdsDidFinish:(NSString *)placementId withFinishState:(UnityAdsFinishState)state{
NSLog(@"unityAdsDidFinish");
[self finishVideoView];
}
知道为什么吗? unityAdsDidFinish
回调似乎是在我点击完成视频顶部的 x 后立即发生的。
我认为这可能是时间问题,所以我也尝试这样做:
[self performSelector:@selector(finishVideoView) withObject:nil afterDelay:1.0];
但这似乎也无济于事。
我最终决定避免等待委托方法,而是在 ViewController 的 viewWillAppear
方法中实现 finishVideoView
。它现在似乎可以工作 - 每当我的视图控制器再次出现时,它会检查 BOOL 以查看是否播放了视频,如果是,它会完成控制器。