我已经成功使用React Native&Branch.io一段时间了,它很棒。但是,我也希望能够处理非分支深层链接。例如,如果我的域名为https://example.com,则我想在打开https://example.com/my-items时打开我的应用程序。我一直在尝试使其运气不佳。我读了很多很多GitHub问题和SO问题。重复一遍,https://example.app.link(即分支网址/通用链接)可以正常工作。
基本上,当我单击https://example.com/my-items时,我的网站将在Safari中打开。未显示“使用XYZ打开” iOS模式,并且我也没有进入该应用程序。
这是我已经尝试过的:
0)经过https://facebook.github.io/react-native/docs/linking和https://hackernoon.com/react-native-deep-linking-for-ios-and-android-d33abfba7ef3
1)确保我将https://example.com/apple-app-site-association(并通过https://branch.io/resources/aasa-validator/验证)作为JSON并公开提供。
2.1)我还尝试了与d相关联的app.link
3)为了调试,我什至在AppDelegate.m中进行了以下操作(通常我通过[RCTLinkingManager application:application openURL:url options:options]
等进行检查)
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
return YES;
}
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity
restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
{
return YES;
}
4)我在设备本身上尝试过(使用iMessages,Notes,Safari)。我还关闭了远程调试(如here所述)
相关版本:
XCode:版本10.2.1(10E1001)
iOS:12.4.1
反应性:0.60.5
react-native-branch:3.0.0 ^
https://example.com/apple-app-site-association
{
"applinks": {
"apps": [],
"details": [
{
"appID": "<MyTeamID-censored>.<My-Bundle-Identifier-censored>",
"paths": [
"/verify-email*",
"/notifications/borrower-request*",
"/notifications/request-confirmed*",
"/messages/*",
"/verification",
"/my-items",
"/my-rentals",
"/dashboard*"
]
}
]
}
}
答案 0 :(得分:0)
这与您的用例有关吗?它帮助了我。
当用户在Safari中浏览您的网站时,他们点击指向当前网页所在域中URL的通用链接,则iOS会尊重用户的最有意图,并在Safari中打开该链接。如果用户点击指向其他域中URL的通用链接,则iOS会在您的应用中打开该链接。
答案 1 :(得分:0)
如果您只想使用自己域中的链接,则可以从“链接设置”中将Branch app.link域更改为自己的自定义域。
答案 2 :(得分:0)
在调试模式下它对我也不起作用
尝试将构建配置更改为发布(或其他,如果有)它应该可以工作
您也可以在线验证您的 AASA 文件