-2

アプリがメールから開かれている場合、 appDelegate で NSURLSessionDataTask を呼び出すので、この関数で

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

試したのにうまくいかないのですが、なぜですか??

この関数からクエリを取得する必要があります

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
NSURLComponents *components = [[NSURLComponents alloc] init];
components.query = [url query];

BOOL confirmRegistration = NO;
NSString *userToken;
for (NSURLQueryItem *queryItem in components.queryItems) {
    if ([queryItem.name isEqualToString:@"userToken"])
    {
        userToken = queryItem.value;
    }
    else if ([queryItem.name isEqualToString:@"registrationType"])
    {
        if ([queryItem.value isEqualToString:@"confirmRegistration"])
        {
            confirmRegistration = YES;
        }
    }
}

//la app è stata aperta con la mail di conferma registrazione
if (confirmRegistration)
{
    NSDictionary* userInfo = @{@"userToken": userToken};
    [[NSNotificationCenter defaultCenter] postNotificationName:@"confirmRegistration" object:nil userInfo:userInfo];
}

return YES;

}

ありがとうございました

4

1 に答える 1