[英]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.