Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

623
Visualizações
Manejar el esquema de URL react-native y Swift

Me gustaría manejar el esquema de URL personalizado en mi aplicación nativa de reacción. Por lo tanto, primero agregué un eventListener en mi código JS dentro de mi componente raíz así:

 componentDidMount() { Linking.addEventListener('url', this.handleOpenURL); } componentWillUnmount() { Linking.removeEventListener('url', this.handleOpenURL); } handleOpenURL = event => { console.log('event', event); };

En mi aplicación Xcode, agregué un esquema de URL personalizado "com.myScheme".

Mi problema apareció cuando traté de agregar la función en mi AppDelegate.swift para manejar la vinculación profunda.

Aquí está mi función:

 func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool { print(url) return true }

Parece que devolver verdadero no es suficiente para activar mi oyente dentro de mi aplicación...

Sé que hay un método Objective-C en la documentación nativa de reacción:

 #import <React/RCTLinkingManager.h> - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options { return [RCTLinkingManager application:application openURL:url options:options]; }

Pero me gustaría tratar solo con Swift para mi proyecto con el fin de mejorar mis habilidades en este idioma. El problema es que no puedo encontrar ningún ejemplo de esta función implementada usando Swift.

Es por eso que pido ayuda para implementar este método y luego activar mi evento dentro de mi aplicación RN.

Gracias por su comprensión :)

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Con respecto a su método AppDelegate, la versión rápida debería ser:

 public func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { return RCTLinkingManager.application(app, open: url, options: options) }
over 4 years ago · Santiago Trujillo Relatório

0

La respuesta de Ro22e0 funcionó muy bien para mí. Mi aplicación también admite enlaces universales, por lo que también necesitaba un equivalente rápido para la siguiente función proporcionada en los documentos de React Native :

- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity 
restorationHandler: (nonnull void (^)(NSArray<id<UIUserActivityRestoring>> *_Nullable))restorationHandler {

  // Debug log something here
  return [RCTLinkingManager application:application
                  continueUserActivity:userActivity
                    restorationHandler:restorationHandler];
}

No me siento muy cómodo con Swift, pero finalmente pude obtener una solución funcional por ensayo y error:

 func application( _ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void ) -> Bool { return RCTLinkingManager.application(application, continue: userActivity, restorationHandler: restorationHandler) }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda