SquareDash/Library/PackageCache/com.unity.services.mediation@1.0.5/Runtime/Plugins/iOS/UMSPRewardedAd.mm
kingjuulian06 0efb85038a Arbeit 2
2023-11-21 22:03:49 +01:00

79 lines
2.3 KiB
Plaintext

#import "UnityAppController.h"
#import <UnityMediationSdk/UnityMediationSdk.h>
#import <UnityMediationSdk/UMSRewardedAdShowOptions.h>
#import "UMSPRewardedAdLoadDelegate.h"
#import "UMSPRewardedAdShowDelegate.h"
#include <string.h>
#ifdef __cplusplus
extern "C" {
#endif
struct S2SRedeemData {
const char *userId;
const char *customData;
};
void * UMSPRewardedAdCreate(const char *adUnitId) {
NSString *adUnitIdString = [NSString stringWithUTF8String:adUnitId];
UMSRewardedAd *rewardedAd = [[UMSRewardedAd alloc]
initWithAdUnitId:adUnitIdString];
return (__bridge_retained void *)rewardedAd;
}
void UMSPRewardedAdLoad(void *ptr, void *delegatePtr) {
if (!ptr) return;
UMSRewardedAd *rewardedAd = (__bridge UMSRewardedAd *)ptr;
UMSPRewardedAdLoadDelegate *delegate = delegatePtr ? (__bridge UMSPRewardedAdLoadDelegate *)delegatePtr : nil;
[rewardedAd loadWithDelegate:delegate];
}
void UMSPRewardedAdShow(void *ptr, void *delegatePtr, S2SRedeemData s2sRedeemData) {
if (!ptr) return;
UMSRewardedAd *rewardedAd = (__bridge UMSRewardedAd *)ptr;
UMSPRewardedAdShowDelegate *delegate = delegatePtr ? (__bridge UMSPRewardedAdShowDelegate *)delegatePtr : nil;
UMSRewardedAdShowOptions *showOptions = [[UMSRewardedAdShowOptions alloc] init];
if (s2sRedeemData.userId != NULL) {
showOptions.publisherData.userId = [NSString stringWithUTF8String:s2sRedeemData.userId];
}
if (s2sRedeemData.customData != NULL) {
showOptions.publisherData.customData = [NSString stringWithUTF8String:s2sRedeemData.customData];
}
UIViewController *viewController = [GetAppController() rootViewController];
[rewardedAd showWithViewController:viewController
delegate:delegate
showOptions:showOptions];
}
const char * UMSPRewardedAdGetAdUnitId(void *ptr) {
if (!ptr) return nil;
UMSRewardedAd *rewardedAd = (__bridge UMSRewardedAd *)ptr;
NSString *adUnitId = [rewardedAd getAdUnitId];
if (!adUnitId) return nil;
return strdup([adUnitId UTF8String]);
}
int UMSPRewardedAdGetAdState(void *ptr) {
if (!ptr) return (int)UMSAdStateUnloaded;
UMSRewardedAd *rewardedAd = (__bridge UMSRewardedAd *)ptr;
return (int)[rewardedAd getAdState];
}
#ifdef __cplusplus
}
#endif