74 lines
2.3 KiB
Mathematica
74 lines
2.3 KiB
Mathematica
|
|
//
|
||
|
|
// TDAnalytics+ThirdParty.m
|
||
|
|
// ThinkingSDK
|
||
|
|
//
|
||
|
|
// Created by 杨雄 on 2023/8/17.
|
||
|
|
//
|
||
|
|
|
||
|
|
#import "TDAnalytics+ThirdParty.h"
|
||
|
|
#import "ThinkingAnalyticsSDKPrivate.h"
|
||
|
|
|
||
|
|
@implementation TDAnalytics (ThirdParty)
|
||
|
|
|
||
|
|
#if TARGET_OS_IOS
|
||
|
|
|
||
|
|
+ (void)enableThirdPartySharing:(TDThirdPartyType)type {
|
||
|
|
[self enableThirdPartySharing:type properties:@{}];
|
||
|
|
}
|
||
|
|
|
||
|
|
+ (void)enableThirdPartySharing:(TDThirdPartyType)type properties:(NSDictionary<NSString *,NSObject *> *)properties {
|
||
|
|
NSString *appId = [ThinkingAnalyticsSDK defaultAppId];
|
||
|
|
[self enableThirdPartySharing:type properties:properties withAppId:appId];
|
||
|
|
}
|
||
|
|
|
||
|
|
+ (void)enableThirdPartySharing:(TDThirdPartyType)type withAppId:(NSString *)appId {
|
||
|
|
[self enableThirdPartySharing:type properties:@{} withAppId:appId];
|
||
|
|
}
|
||
|
|
|
||
|
|
+ (void)enableThirdPartySharing:(TDThirdPartyType)type properties:(NSDictionary<NSString *,NSObject *> *)properties withAppId:(NSString *)appId {
|
||
|
|
ThinkingAnalyticsSDK *instance = [ThinkingAnalyticsSDK instanceWithAppid:appId];
|
||
|
|
|
||
|
|
if (instance != nil) {
|
||
|
|
Class TAThirdPartyManager = NSClassFromString(@"TAThirdPartyManager");
|
||
|
|
if (TAThirdPartyManager == nil) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
NSObject *manager = [[TAThirdPartyManager alloc] init];
|
||
|
|
if (manager == nil) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
#pragma clang diagnostic push
|
||
|
|
#pragma clang diagnostic ignored "-Wundeclared-selector"
|
||
|
|
SEL action = @selector(enableThirdPartySharing:instance:property:);
|
||
|
|
#pragma clang diagnostic pop
|
||
|
|
|
||
|
|
NSMethodSignature *methodSig = [manager methodSignatureForSelector:action];
|
||
|
|
if (methodSig == nil) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
@try {
|
||
|
|
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:methodSig];
|
||
|
|
|
||
|
|
NSNumber *thirdPartyTypeNumber = [NSNumber numberWithInteger:type];
|
||
|
|
[invocation setArgument:&thirdPartyTypeNumber atIndex:2];
|
||
|
|
|
||
|
|
[invocation setArgument:&instance atIndex:3];
|
||
|
|
|
||
|
|
NSDictionary *thirdPartyProperties = properties;
|
||
|
|
[invocation setArgument:&thirdPartyProperties atIndex:4];
|
||
|
|
|
||
|
|
[invocation setSelector:action];
|
||
|
|
[invocation setTarget:manager];
|
||
|
|
[invocation invoke];
|
||
|
|
} @catch (NSException *exception) {
|
||
|
|
TDLogError(@"ThirdParty invocate failed!")
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
#endif
|
||
|
|
|
||
|
|
@end
|