【问题标题】:React Native Branch Non Branch Link AlwaysReact Native Branch Non Branch Link Always
【发布时间】:2018-04-11 05:35:55
【问题描述】:

从与 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 中为branch_key 添加了livetest

我已经配置了通用链接,为我各自的应用程序添加了相应的 applinks:xxxx.app.link,将 xxxx 替换为此类。

非常感谢,我不确定我是否遗漏了一些适用于 iOS 的配置,但它似乎适用于 Android。

【问题讨论】:

    标签: ios react-native deep-linking react-native-ios branch.io


    【解决方案1】:

    完全披露,我在Branch工作

    您的应用无法检测到分支链接的原因可能是因为您的应用正在使用测试密钥,而您正在使用在应用的实时版本中创建的链接。要检查您的应用程序是否使用测试密钥,您可以在分支仪表板上的应用程序的测试版本中创建一个链接,然后单击该链接。如果您收到+clicked_branch_link:true,则表示您的应用正在使用测试密钥。 (测试版中的链接格式为:https://yourapp-test.app.link/sbjdsRS)。

    您可以通过以下方式确保您的应用使用实时密钥而不是测试密钥:

    1. 从您的info.plist 中完全删除测试密钥或

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-14
      • 2017-12-07
      • 2018-10-18
      • 2012-04-17
      • 2022-11-18
      • 2022-12-02
      • 1970-01-01
      相关资源
      最近更新 更多