Ta android + ios
This commit is contained in:
61
sdk-intergration/Packages/TA/Plugins/iOS/TAThirdParty/TAIronSourceSyncData.m
vendored
Normal file
61
sdk-intergration/Packages/TA/Plugins/iOS/TAThirdParty/TAIronSourceSyncData.m
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
//
|
||||
// TAIronSourceSyncData.m
|
||||
// ThinkingSDK
|
||||
//
|
||||
// Created by wwango on 2022/2/16.
|
||||
//
|
||||
|
||||
#import "TAIronSourceSyncData.h"
|
||||
|
||||
@implementation TAIronSourceSyncData
|
||||
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
|
||||
|
||||
static id _td_last_IronSource_delegate;
|
||||
|
||||
- (void)syncThirdData:(id<TAThinkingTrackProtocol>)taInstance {
|
||||
|
||||
[super syncThirdData:taInstance];
|
||||
|
||||
if (self.isSwizzleMethod) return;
|
||||
|
||||
Class class = NSClassFromString(@"IronSource");
|
||||
NSString *oriSELString = @"addImpressionDataDelegate:";
|
||||
SEL newSel = NSSelectorFromString([NSString stringWithFormat:@"td_%@", oriSELString]);
|
||||
IMP newIMP = imp_implementationWithBlock(^(id _self, id delegate) {
|
||||
if ([_self respondsToSelector:newSel]) {
|
||||
[_self performSelector:newSel withObject:delegate];
|
||||
_td_last_IronSource_delegate = delegate;
|
||||
}
|
||||
|
||||
id class1 = delegate;
|
||||
NSString *oriSELString1 = @"impressionDataDidSucceed:";
|
||||
SEL newSel1 = NSSelectorFromString([NSString stringWithFormat:@"td_%@", oriSELString1]);
|
||||
IMP newIMP1 = imp_implementationWithBlock(^(id _self1, id impressionData) {
|
||||
if ([_self1 respondsToSelector:newSel1]) {
|
||||
[_self1 performSelector:newSel1 withObject:impressionData];
|
||||
}
|
||||
|
||||
NSDictionary *all_data;
|
||||
SEL sel = NSSelectorFromString(@"all_data");
|
||||
if ([impressionData respondsToSelector:sel]) {
|
||||
all_data = [impressionData performSelector:sel];
|
||||
}
|
||||
|
||||
if (_td_last_IronSource_delegate == _self1) {
|
||||
[self.taInstance track:@"ta_ironSource_callback" properties:all_data];
|
||||
}
|
||||
});
|
||||
__td_td_swizzleWithOriSELStr(class1, oriSELString1, newSel1, newIMP1);
|
||||
});
|
||||
|
||||
__td_td__swizzleWithClassMethod(class, oriSELString, newSel, newIMP);
|
||||
|
||||
self.isSwizzleMethod = YES;
|
||||
}
|
||||
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
@end
|
||||
|
||||
Reference in New Issue
Block a user