Suporte à nova arquitetura do OpenTok React Native

A versão 2.31.0-beta.2 do SDK do OpenTok para React Native oferece suporte ao Nova arquitetura do React Native. Para mais informações, esta documentação.

A versão 2.31.0-beta.2 oferece suporte às atualizações do Client SDK para a versão 2.31.0. Consulte a lista de problemas conhecidos.

Esta versão beta não se destina ao uso em aplicativos de produção finais.

A versão 2.31 será compatível apenas com a nova arquitetura do React Native. Ela não será compatível com aplicativos que utilizam a arquitetura antiga.

Requisitos do sistema

A versão 2.31 do SDK do OpenTok para React Native é compatível apenas com o Nova arquitetura do React Native. Se seu aplicativo precisar ser executado em uma versão do React Native que não utilize a nova arquitetura, você precisará usar uma versão anterior do SDK do OpenTok para React Native (como a versão 2.30).

Instalação

Você pode instalar esta versão beta a partir do npmjs:

npm install opentok-react-native@2.31.0-beta.2

... ou ...

yarn add opentok-react-native@2.31.0-beta.2

As etapas de instalação no Android e no iOS são basicamente as mesmas das versões anteriores. No entanto, para esta versão, é necessário registrar os pacotes do OpenTok em seu aplicativo.

No Android, registre o OpentokReactNativePackage, OTPublisherViewNativePackage, e OTSubscriberViewNativePackage pacotes no arquivo MainActivity do seu aplicativo. Consulte a etapa 6 da seção “Instalação no Android” abaixo.

No iOS, registre o OpentokReactNativePackage, OTPublisherViewNativePackage, e OTSubscriberViewNativePackage pacotes no arquivo MainActivity do seu aplicativo. Consulte a etapa 4 da seção “Instalação no iOS” abaixo.

Instalação no iOS

  1. Instale os pods do iOS:

    npx pod-install
    
  2. Para versões do React Native anteriores à 0.60:

    • Adicione isto ao seu Podfile:

      target '<YourProjectName>' do
          # Pods for <YourProject>
          pod 'OTXCFramework', '2.30.1'
      end
      
    • Correr react-native link opentok-react-native.

    Essas etapas não são necessárias no React Native versão 0.60 e posteriores.

  3. Certifique-se de ter habilitado o uso da câmera e do microfone adicionando as seguintes entradas ao arquivo Info.plist arquivo:

    <key>NSCameraUsageDescription</key>
    <string>Your message to user when the camera is accessed for the first time</string>
    <key>NSMicrophoneUsageDescription</key>
    <string>Your message to user when the microphone is accessed for the first time</string>
    

Ao criar um arquivo compactado do seu aplicativo, o configurações do manifesto de privacidade exigidas pela App Store da Apple são adicionados automaticamente nesta versão do SDK do OpenTok para React Native.

  1. Registre as classes OTPublisherViewNative e OTSubscriberViewNative do OpenTok. Para isso, modifique a implementação do AppDelegate.

    • Se o seu aplicativo tiver um arquivo AppDelegate em Objective-C++ (AppDelegate.mm), adicione essas classes à lista de pacotes no NSMutableDictionary retornado pelo thirdPartyFabricComponents() função:
     #import "OTPublisherViewNativeComponentView.h"
     #import "OTSubscriberViewNativeComponentView.h"
    
     @implementation AppDelegate
         // ...
         - (NSDictionary> *)thirdPartyFabricComponents
     {
     NSMutableDictionary * dictionary = [super thirdPartyFabricComponents].mutableCopy;
     dictionary[@"OTPublisherViewNative"] = [OTPublisherViewNativeComponentView class];
     dictionary[@"OTSubscriberViewNative"] = [OTSubscriberViewNativeComponentView class];
     return dictionary;
     }
     
     @end
    
    • Se seu aplicativo usa um arquivo AppDelegate em Swift (AppDelegate.swift), você precisará ter a implementação do RCTAppDelegate.application(_, didFinishLaunchingWithOptions) O método utiliza um cabeçalho de ponte para chamar um método em um arquivo Objective-C++ que, por sua vez, chama o [RCTComponentViewFactory registerComponentViewClass:] método, passando o OTPublisherViewNativeComponentView e OTSubscriberViewNativeComponentView aulas.
  2. Se o seu aplicativo for usar o OTPublisher.setVideoTransformers() ou OTPublisher.setAudioTransformers() Para usar esse método, você precisa incluir o seguinte no seu Podfile:

    pod 'VonageClientSDKVideoTransformers'
    

Se você tentar arquivar o aplicativo e a operação falhar, faça o seguinte:

  1. Acesse Meta.

  2. Clique Fases de construção.

  3. De acordo com o Vincular o arquivo binário às bibliotecas seção, remover libOpenTokReactNative.a e adicione-o novamente.

Instalação no Android

  1. No seu terminal, acesse o diretório do seu projeto.

  2. Para versões do React Native anteriores à 0.60:

    • Correr react-native link opentok-react-native

    Essa etapa não é necessária no React Native versão 0.60 e posteriores.

  3. Correr bundle install.

  4. Verifique se o seguinte está presente no arquivo Gradle do seu aplicativo compileSdkVersion, buildToolsVersion, minSdkVersion, e targetSdkVersion são maiores ou iguais às versões especificadas na biblioteca OpenTok para React Native.

  5. O SDK adiciona automaticamente as permissões do Android necessárias. Você não precisa adicioná-las ao manifesto do seu aplicativo. No entanto, certas permissões exigem que você solicite a autorização do usuário. Consulte o lista completa das permissões necessárias na documentação do SDK para Android da Video API da Vonage.

  6. No arquivo MainActivity.kt do seu aplicativo, registre os pacotes OpenTok OpentokReactNativePackage, OTPublisherViewNativePackage e OTSubscriberViewNativePackage. Para isso, modifique o arquivo MainApplication adicionando-os à lista de pacotes retornada pelo getPackages() função

    override fun getPackages(): List<ReactPackage> =
        PackageList(this).packages.apply {
            add(OTPublisherViewNativePackage())
            add(OTSubscriberViewNativePackage())
            add(OpentokReactNativePackage())
        }
        // ...
    
  7. Se o seu aplicativo for usar o OTPublisher.setVideoTransformers() ou OTPublisher.setAudioTransformers() Para utilizar esse método, você precisa incluir o seguinte no arquivo app/build.gradle:

    implementation "com.vonage:client-sdk-video-transformers:2.30.1"
    

Problemas conhecidos

A seguir, estão listados os problemas conhecidos nesta versão beta:

  • O vídeo do assinante congela com frequência ao usar VP9 ou H264.
  • otrnError faltam eventos.