通用链接不适用于React Native

时间:2019-09-26 12:21:39

标签: react-native react-native-ios branch.io ios-universal-links

我已经成功使用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/linkinghttps://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) XCode -> Capabilities -> Associated domains

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*"
        ]
      }
    ]
  }
}

3 个答案:

答案 0 :(得分:0)

这与您的用例有关吗?它帮助了我。

当用户在Safari中浏览您的网站时,他们点击指向当前网页所在域中URL的通用链接,则iOS会尊重用户的最有意图,并在Safari中打开该链接。如果用户点击指向其他域中URL的通用链接,则iOS会在您的应用中打开该链接。

source

答案 1 :(得分:0)

如果您只想使用自己域中的链接,则可以从“链接设置”中将Branch app.link域更改为自己的自定义域。

答案 2 :(得分:0)

在调试模式下它对我也不起作用

尝试将构建配置更改为发布(或其他,如果有)它应该可以工作

您也可以在线验证您的 AASA 文件