【发布时间】:2020-05-08 12:39:04
【问题描述】:
我们正在使用深层链接来完成对我们正在开发的应用的验证。所述深层链接导致应用委托方法:
- (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>"
我有一个相当广泛的谷歌,似乎暗示这可能是在后台发出网络请求时引起的,但是苹果在文档中非常清楚地说明了这种方法:
如果在您的应用暂停或在后台运行时到达 URL,系统会在调用此方法之前将您的应用移至前台。
有什么我们不应该在这里做的吗?有没有其他人看到过类似的问题?
更新
在应用程序启动后第一次打开链接时,这似乎工作正常,但随后的调用失败。似乎没有任何东西以不同的顺序被调用,所以我们为什么会看到这种模式非常令人困惑!
【问题讨论】:
标签: ios react-native networking nsurlsession deep-linking