React Native FB App устанавливает проблему с глубокими ссылками - PullRequest
0 голосов
/ 03 декабря 2018

Мой FB Отложенная глубокая ссылка: einee: // free_rallyn_monroe = true .Нажатие на кнопку «Установить» в тестовом объявлении (если приложение уже установлено) работает нормально.Однако, когда приложение еще не установлено и не нажимает кнопку «Установить объявление FB», которая переводит пользователя в App Store, при запуске приложения глубокая ссылка не обнаруживается.

Это мой код в React Nativeдля определения глубокой ссылки:

Linking.getInitialURL().then((url) => {
    if(url){
        if(url.includes('free_marilyn_monroe=true')){
            // Deep link detected code
        }
    }
    // ...

Это мой код AppDelegate.m:

/**
 * Copyright (c) 2015-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

#import "AppDelegate.h"

#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
#import "SplashScreen.h"
#import <Fabric/Fabric.h>
#import <Crashlytics/Crashlytics.h>
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <react-native-branch/RNBranch.h>

@import GoogleMobileAds;
@import Firebase;

@implementation AppDelegate

- (void)applicationDidBecomeActive:(UIApplication *)application {
  [FBSDKAppEvents activateApp];
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  [FIRApp configure];

  // Uncomment this line to use the test key instead of the live one.
  // [RNBranch useTestInstance];
  [RNBranch initSessionWithLaunchOptions:launchOptions isReferrable:YES];
  NSURL *jsCodeLocation;

  jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];

  RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
                                                      moduleName:@"Einee"
                                               initialProperties:nil
                                                   launchOptions:launchOptions];
  rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];

  [[FBSDKApplicationDelegate sharedInstance] application:application
                           didFinishLaunchingWithOptions:launchOptions];

  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
  UIViewController *rootViewController = [UIViewController new];
  rootViewController.view = rootView;
  self.window.rootViewController = rootViewController;
  [self.window makeKeyAndVisible];
  [SplashScreen show];
  [Fabric with:@[[Crashlytics class]]];
  [GADMobileAds configureWithApplicationID:@"ca-app-pub-3594094751431969~9145980369"];
  return YES;
}

// Respond to URI scheme links
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
  if (![RNBranch.branch application:application openURL:url options:options]) {
    // Facebook scheme click detect
    return [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation];
  }
  return YES;
}

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

@end

Я обнаружил глубокую ссылку неправильно?Пожалуйста, помогите!

1 Ответ

0 голосов
/ 03 апреля 2019

Вы использовали схему URL для глубоких ссылок, предложите использовать универсальные ссылки для того случая, когда приложение не установлено.Проверьте разницу между двумя здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...