使用已安装的 FIRDynamicLinks 处理动态链接时,handleUniversalLink 始终返回 false,并且永远不会调用回调。
我们已经链接了一个子域:https://app.[mycompany].com/,因此该apple-app-site-association
文件已准备好并且可以访问。
FirebaseDynamicLinks SDK 在我们的应用程序 pods (v 4.0.1) 我们的应用程序功能包括作为关联域:applinks:*.[mycompany].com
并且applinks:app.[mycompany].com
我们使用 Xcode 11.3.1,我们的 AppDelegate 在 Objective-C 中
这是我们遵循Firebase 文档的 AppDelegate 代码:
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler
{
// DynamicLinks: App installed. universal link
NSURL *incomingURL = userActivity.webpageURL;
if (incomingURL != nil) {
NSLog(@"incoming URL: %@",incomingURL);
BOOL linkHandled = [[FIRDynamicLinks dynamicLinks] handleUniversalLink:incomingURL
completion:^(FIRDynamicLink * _Nullable dynamicLink, NSError * _Nullable error) {
if (error != nil) {
NSLog(@"error transforming: %@ into a dynamicLink (%@): ", incomingURL, error.localizedDescription);
} else if (dynamicLink != nil) {
[self handleIncomingDynamicLink:dynamicLink];
}
}];
if (linkHandled) {
return true;
} else {
// OLD universal link handling
NSLog(@"incoming URL not handled");
}
}
return NO;
}
动态链接为: https://app.[mycompany].com/?link=https://[mycompany].com/[featureID]?token%3D12345&isi=[1234567890]&ibi=com.[mycompany].app 它是按照本教程直接从 Firebase 控制台生成的。
仍然 linkHandled 的布尔值始终为 false 并且永远不会调用回调。
我们检查了:
https://github.com/firebase/quickstart-ios/issues/380 和 Firebase 动态链接 - Continueuseractivity 不返回动态链接 url
但他们没有帮助。