React Native分支非分支链接始终

4
从iOS链接启动时会不断返回以下内容,但Android正常工作。
{"+is_first_session":false,"+clicked_branch_link":false,"+non_branch_link":"https://yourapp.app.link/?someparam=123"}
我刚开始使用React Native Branch,当通过提供的链接打开Android应用程序并成功订阅并识别传递参数的分支链接时,我已经到达了这一点,但是对于iOS应用程序,虽然应用程序成功地通过链接打开并订阅,但它似乎没有识别分支链接,也没有传递参数。
如要求更改了AppDelegate.m:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

  [RNBranch initSessionWithLaunchOptions:launchOptions isReferrable:YES];

  NSURL *jsCodeLocation;

增加了打开URL功能(已经包含FBSDKApplicationDelegate)

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
            options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {

  BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application
                                                                openURL:url
                                                      sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
                                                             annotation:options[UIApplicationOpenURLOptionsAnnotationKey]
                  ];

  if (![RNBranch.branch application:application openURL:url options:options]) {
    // do other deep link routing for the Facebook SDK, Pinterest SDK, etc
  }
  return YES;

  // Add any custom logic here.
  return handled;
} 

继续用户活动

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *restorableObjects))restorationHandler {
  return [RNBranch continueUserActivity:userActivity];
}

@end

我已经在 info.plist 中添加了livetest用于branch_key

我配置了通用链接,将相应的applinks:xxxx.app.link添加到我的应用程序中,并将xxxx替换为实际值。

非常感谢,我不确定是否需要在iOS上进行其他设置,但似乎在Android上正常工作。

1个回答

6

声明一下,我在Branch工作。

你的应用不能检测到Branch链接的原因可能是因为你的应用正在使用测试密钥,而你正在使用在应用的生产版本中创建的链接。要检查你的应用是否正在使用测试密钥,你可以在Branch控制面板的测试版本中创建一个链接,并单击该链接。如果你得到了+clicked_branch_link:true,则表示你的应用正在使用测试密钥(测试版本中的链接格式如下:https://yourapp-test.app.link/sbjdsRS)。

你可以通过以下方式确保你的应用使用的是生产密钥而不是测试密钥:

  1. 从你的info.plist完全删除测试密钥;或者

  2. 确保在你的应用程序中没有启用测试模式(你可以使用branch.setDebug()Branch.setUseTestBranchKey(true) 在你的AppDelegate中启用测试模式)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接