[英]Firebase Dynamic Links on iOS/React Native only working when app is running
我正在使用Firebase 的动态链接(8.11.0) 打开具有特定 URL 的 React Native (0.66.4) 应用程序。
在我的AppDelegate.m
文件中,我以这种方式处理 URL:
- (BOOL)application:(UIApplication *)application
continueUserActivity:(nonnull NSUserActivity *)userActivity
restorationHandler:
#if defined(__IPHONE_12_0) && (__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_12_0)
(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> *_Nullable))restorationHandler {
#else
(nonnull void (^)(NSArray *_Nullable))restorationHandler {
#endif // __IPHONE_12_0
FIRDynamicLink *dynamicLink = [[FIRDynamicLinks dynamicLinks] dynamicLinkFromCustomSchemeURL:userActivity.webpageURL];
if (dynamicLink) {
if (dynamicLink.url) {
NSLog(@"dynamicLink.url %@", dynamicLink.url);
return [RCTLinkingManager application:application openURL:dynamicLink.url options:[NSMutableDictionary dictionary]];
}
}
return [[FIRDynamicLinks dynamicLinks] handleUniversalLink:userActivity.webpageURL
completion:^(FIRDynamicLink * _Nullable dynamicLink, NSError * _Nullable error) {
if (error) {
NSLog(@" dynamicLink.url ERROR %@", error);
}
if (dynamicLink) {
if (dynamicLink.url) {
NSLog(@" dynamicLink.url %@", dynamicLink.url);
// ******** This line is executed as expected in both cases *******
[RCTLinkingManager application:application openURL:dynamicLink.url options:[NSMutableDictionary dictionary]];
} else {
[RCTLinkingManager application:application openURL:userActivity.webpageURL options:[NSMutableDictionary dictionary]];
}
} else {
[RCTLinkingManager application:application openURL:userActivity.webpageURL options:[NSMutableDictionary dictionary]];
}
}];
}
我的Info.plist
文件指定了我的自定义域:
<key>FirebaseDynamicLinksCustomDomains</key>
<array>
<string>https://join.mysite.app</string>
</array>
我的关联域指定
applinks:join.mysite.app
有了这个,我的 React Native 代码,通过Linking.getInitalURL()
正在接收我期望的link
( 在此处指定),但前提是当单击短链接时应用程序已经在运行。
当我的应用程序未运行时,将执行上面注释中提到的相同代码,具有我期望的相同输入和输出,但Linking.getInitalURL()
调用给我的是短链接,而不是传递的解析链接到RCTLinkingManager
。
我希望使用相同的代码路径/数据,行为将是相同的,但只有当应用程序已经运行时它才是正确的。 我错过了一步吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.