【发布时间】:2019-05-21 04:35:51
【问题描述】:
我好几天都在为动态链接苦苦挣扎。感谢任何帮助,请。 我集成了firebase动态链接,如果我将链接粘贴到chrome url中并按Enter,它可以打开带有事件触发和url传递的应用程序 但是如果我点击预览页面上的打开按钮,无论是否安装了应用程序,它总是打开应用商店 有什么想法吗?
我浏览了网络上的所有帖子,但运气不佳。
"react-native": "^0.59.5"
"react-native-firebase": "^5.3.1"
pod 'Firebase/Core', '~> 5.20.1'
pod 'Firebase/DynamicLinks', '~> 5.20.1'
firebase 控制台上的域:https://links.umrgo.com/links
捆绑ID:com.umrgo.www.umr-app-ios
URL Types identifier: links.umrgo.com
URL Types identifier: com.umrgo.www.umr-app-ios
capabilities: applinks:links.umrgo.com
发布构建
我还添加了带有字符串数组的 FirebaseDynamicLinksCustomDomains https://links.umrgo.com
我的一些代码如下。
[FIROptions defaultOptions].deepLinkURLScheme = @"com.umrgo.www.umr-app-ios";
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
options:(NSDictionary<NSString*, id> *)options
{
BOOL handled = [[RNFirebaseLinks instance]
application:application
openURL:url
options:options
] || [RCTLinkingManager
application:application
openURL:url
options:options
];
return handled;
}
- (BOOL)application:(UIApplication *)application
continueUserActivity:(NSUserActivity *)userActivity
restorationHandler:(void (^)(NSArray *))restorationHandler {
BOOL handled = [[RNFirebaseLinks instance]
application:application
continueUserActivity:userActivity
restorationHandler:restorationHandler
] || [RCTLinkingManager
application:application
continueUserActivity:userActivity
restorationHandler:restorationHandler
];
return handled;
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
BOOL handled = [RCTLinkingManager
application:application
openURL:url
sourceApplication:sourceApplication
annotation:annotation
];
return handled;
}
const link = new firebase.links.DynamicLink(`https://www.umrgo.com/publish/${publishId}?publishType=${publishType}&publishId=${publishId}&otherUserUnionId=${currentUserUnionId}&conversationId=${conversationId}`,
'links.umrgo.com/links').android.setPackageName(conf.GooglePackageName).ios.setBundleId(conf.AppleBundleId).ios.setAppStoreId(conf.AppleAppID);
firebase.links()
.createShortDynamicLink(link, 'UNGUESSABLE')
.then((url) => {
var payload = {
key: createLinkUniqueKey(conversationId, publishId, currentUserUnionId, publishType),
url: url,
publish_id: publishId,
target_user_unionid: currentUserUnionId,
conversation_id: conversationId,
publish_type: publishType
}
axios.post(getApiEndpoint(conf.UMRApiUrls.createDynamicLinkRemote), payload, {
headers: getAuthHeader()
}).then(response => {
console(response)
})
});
部分截图如下:
enter link in browser and press enter
【问题讨论】:
-
我的一些快照
-
您能分享一个动态链接网址吗?
createShortDynamicLink()之后的回调中的url是什么? -
好吧,我想通了。对于任何第一次尝试测试此功能的人,当您点击链接时,您可以选择在应用程序中打开或在 safari 中打开,如果您选择在应用程序中打开,一切看起来都很好,但是如果您选择在 safari 中打开,打开按钮会始终重定向到应用商店。
标签: ios firebase react-native firebase-dynamic-links