NSDictionary *FIRDLDictionaryFromQuery(NSString *queryString) {
NSArray<NSString *> *keyValuePairs = [queryString componentsSeparatedByString:@"&"];
NSMutableDictionary *queryDictionary = [NSMutableDictionary dictionaryWithCapacity:keyValuePairs.count];
for (NSString *pair in keyValuePairs) {
NSArray *keyValuePair = [pair componentsSeparatedByString:@"="];
if (keyValuePair.count == 2) {
NSString *key = keyValuePair[0];
NSString *value = [keyValuePair[1] stringByRemovingPercentEncoding];
[queryDictionary setObject:value forKey:key];
}
}
}
Затем я отслеживал FIRDynamicLinks и нашел причину root.
Dynami c ссылка для iOS с фильтром char из @ "&" и @ "=", в соответствии с keyValuePair.count == 2
, мои параметры будут удалены, кто ключевое слово [ссылка].
Из-за моей длинной динамической c ссылки имеет два символа [=] перед первым символом [&], keyValuePair.count равен 3.
Так что мой динамический c объект ссылки не имеет 't link option и return nil
Я думаю, что URL должен ссылаться на Создание URL-адреса Dynami c вручную и пытаться быть таким же.
Наконец , Я обнаружил аналогичный симптом Deep Link не содержит допустимых обязательных параметров , значение ссылки должно быть закодировано в процентах, что решает мою путаницу и мою проблему.
Но интересная, Android платформа без этого Симптом, такая же длинная ссылка c работоспособна.