Mic*_*kes 4 deep-linking ios react-native branch.io react-native-ios
从与 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
然后我live在testbranch_keyinfo.plist
我已经配置了通用 linkng,applinks:xxxx.app.link为我各自的应用程序添加了相应的内容,xxxx并将其替换为此类。
非常感谢,我不确定我是否缺少 iOS 的一些配置,但它似乎在 Android 上工作正常。
小智 7
完全披露,我在Branch工作
您的应用程序无法检测到分支链接的原因可能是因为您的应用程序正在使用测试密钥,而您正在使用在应用程序的实时版本中创建的链接。要检查您的应用程序是否正在使用测试密钥,您可以在 Branch 仪表板上的应用程序测试版本中创建一个链接,然后单击该链接。如果您收到+clicked_branch_link:true它,则意味着您的应用程序正在使用测试密钥。(测试版本中的链接格式为: https: //yourapp-test.app.link/sbjdsRS)。
您可以通过以下方式确保您的应用程序使用实时密钥而不是测试密钥:
info.plist从您的手术室中完全移除测试钥匙
确保您没有在应用程序中启用测试模式(您可以在 AppDelegate 中使用branch.setDebug()OR来启用测试模式)Branch.setUseTestBranchKey(true)