pod'AppsFlyerFramework','~>6.17.8’
support.appsflyer.com/hc/en-us/ar…
有时候走了推广网页链接后 拿不到回调值 报出 notfound
- (void)didResolveDeepLink:(AppsFlyerDeepLinkResult *)result
这里记录下坑:
1:这个回调,手机修改系统时间也拿不到
2:info.plist里没写:Advertising attribution report endpoint URL :appsflyer-skadnetwork.com/
3 Associated Domains没配置:
4:开启:后台SKAN
拿到之后进行业务逻辑处理:
- (void)didResolveDeepLink:(AppsFlyerDeepLinkResult *)result {
switch(result.status) {
case AFSDKDeepLinkResultStatusNotFound:
NSLog(@"555-not found:%@",result.error);
// [BRAppDelegate hideHUD];
// [CommonUtil showCommonToastWithStr:@"新安装数据 not found" hideAfterSeconds:2 andAfterPostAction:nil postObject:nil];
break;
case AFSDKDeepLinkResultStatusFailure:
NSLog(@"555-link failure");
// [BRAppDelegate hideHUD];
// [CommonUtil showCommonToastWithStr:@"新安装数据 link failure" hideAfterSeconds:2 andAfterPostAction:nil postObject:nil];
break;
case AFSDKDeepLinkResultStatusFound:
NSLog(@"555-link found");
break;
default:
break;
}
// [SVProgressHUD dismiss];
[BRAppDelegate hideHUDAF];
AppsFlyerDeepLink*deepLink = (AppsFlyerDeepLink *)result.deepLink;
NSString*str = [deepLinktoString];
NSLog(@"str555:%@",str);
if(deepLink !=nil)
{
NSString*mydeeplinkValue = deepLink.deeplinkValue;
NSString*mymediaSource = deepLink.mediaSource;
NSString*campaignId = deepLink.campaignId;
NSLog(@"555mydeeplinkValue:%@",mydeeplinkValue);
// 20250211
// [CommonUtil showCommonToastWithStr:[NSString stringWithFormat:@"新安装拿到数据:%@",mydeeplinkValue] hideAfterSeconds:1 andAfterPostAction:nil postObject:nil];
if(mydeeplinkValue) {
[[NSUserDefaultsstandardUserDefaults]setObject:mydeeplinkValueforKey:@"AFDeepLinkValue"];
NSDictionary*dict = [mydeeplinkValuemj_JSONObject];
NSString*AFDeepLinkValue = [mydeeplinkValueURLDecodedString];
NSString*linkV = [dictobjectForKey:@"link_value"];
NSMutableDictionary *paramDict = [NSMutableDictionary dictionary];
// 1. 因为NSURLComponents需要完整URL结构,给参数串拼接一个假的URL前缀即可
NSString*dummyURLStr = [NSStringstringWithFormat:@"xxx?%@",linkV];
NSURLComponents*components = [NSURLComponentscomponentsWithString:dummyURLStr];
// 2. 系统直接解析出所有query参数对象
for(NSURLQueryItem*itemincomponents.queryItems) {
// NSURLQueryItem已经自动做了百分号解码,无需额外处理
paramDict[item.name] = item.value?:@"";
}
NSLog(@"paramDict:%@",paramDict);
// 3. 取值和上面完全一致
NSString*channel = paramDict[@"channel"] ?:@"默认值";
NSString*appidStr = paramDict[@"appid"] ?:@"0";
NSLog(@"linkV:%@\nchannel:%@\nappidStr:%@",linkV,channel,appidStr);
[CommonUtilAFSaveChannel:channel];
[[NSNotificationCenter defaultCenter]postNotificationName:@"refreshLocal" object:nil userInfo:@{@"afChannel":@"1"}];
}
if(mymediaSource) {
[[NSUserDefaultsstandardUserDefaults]setObject:mymediaSourceforKey:@"AFMediaSource"];
}
[[NSUserDefaults standardUserDefaults] synchronize];
}
}