始终反应本机分支非分支链接

时间:2017-10-30 09:32:19

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

从iOS链接启动时会不断返回以下内容,但Android工作正常。

{&#34 + is_first_session":假,&#34 + clicked_branch_link":假,&#34 + non_branch_link":" https://yourapp.app.link/?someparam=123&#34 ;}

我刚刚开始使用React Native Branch,我已经通过提供的链接开启了我的Android应用程序,并且已成功订阅并识别分支链接并传入params但是当它来到iOS应用程序,而应用程序成功地按照链接打开,订阅,它似乎没有识别分支链接,也没有传递参数。

我已根据需要修改了AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

  [RNBranch initSessionWithLaunchOptions:launchOptions isReferrable:YES];

  NSURL *jsCodeLocation;

添加了Open 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

中为test添加了branch_keyinfo.plist

我已经配置了通用链接,为我的相应应用添加了相应的applinks:xxxx.app.link替换xxxx

非常感谢,我不确定我是否在这里错过了一些适用于iOS的配置,但它似乎与Android配合使用。

1 个答案:

答案 0 :(得分:2)

完全披露,我在Branch

工作

您的应用无法检测到分支链接的原因可能是因为您的应用正在使用测试密钥,并且您正在使用在应用的实时版本中创建的链接。要检查您的应用是否使用了测试密钥,您可以在分支仪表板上的应用测试版中创建一个链接,然后单击该链接。如果您获得{assign var=size value=['Small'=>'small','Middle'=>'middle','Large'=>'large']} {foreach $Item->images as $image} <img src="{$image->{$size|array_rand}}" /> {/foreach} ,则表示您的应用正在使用测试密钥。 (测试版本中的链接格式为:https://yourapp-test.app.link/sbjdsRS)。

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

  1. +clicked_branch_link:true OR

  2. 中完全删除测试密钥
  3. 确保您未在​​应用程序中启用测试模式(您可以在AppDelegate中使用info.plistbranch.setDebug()启用测试模式)