Мы используем глубокие ссылки для полной проверки приложения, над которым мы работаем. Упомянутые глубокие ссылки приводят к вызову метода делегата приложения:
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
. Это приложение использует React Native, используя встроенный Linking
API. Иногда отправка сетевого запроса, когда мы получаем Linking
обратный вызов, работает, но иногда мы получаем сетевую ошибку:
Task <D47D1F90-E2D1-4AB7-8706-8737B68CC5E8>.<180> finished with error [-1005] Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost." UserInfo={_kCFStreamErrorCodeKey=53, NSUnderlyingError=0x283352ac0 {Error Domain=kCFErrorDomainCFNetwork Code=-1005 "(null)" UserInfo={NSErrorPeerAddressKey=<CFData 0x281ed9130 [0x1e9babcb0]>{length = 16, capacity = 16, bytes = 0x100201bb34d2847e0000000000000000}, _kCFStreamErrorCodeKey=53, _kCFStreamErrorDomainKey=1}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <D47D1F90-E2D1-4AB7-8706-8737B68CC5E8>.<180>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
"LocalDataTask <D47D1F90-E2D1-4AB7-8706-8737B68CC5E8>.<180>"
У меня был довольно обширный Google, и кажется, что это может быть вызвано тем, что сетевой запрос выполняется в фоновом режиме, однако Apple достаточно четко указывает в документах для этого метода:
Если URL-адрес приходит, когда ваше приложение приостановлено или работает в фоновом режиме, система перемещает ваше приложение на передний план перед вызовом этого метода.
Есть что-то, что мы не должны здесь делать? Кто-нибудь еще видел подобные проблемы?
Обновление
Кажется, это работает нормально при первом открытии ссылки после запуска приложения, но при последующих вызовах происходит сбой. Кажется, ничто не вызывается в другом порядке, поэтому очень странно, почему мы видим такой шаблон!