Oferta para nuevos clientes−20 %20 % de descuento los primeros 3 meses con pago mensualVer tarifas
SilentShield

Integración con React Native

Integre SilentShield en aplicaciones React Native mediante un wrapper basado en WebView. El widget se ejecuta dentro de una WebView ligera y se comunica con su aplicación a través del puente de mensajes de React Native.

Instalación

Early Access

El paquete de React Native está actualmente en acceso anticipado — solicítalo en [email protected]; la publicación en npm llegará después. Los ejemplos siguientes muestran la API del paquete en acceso anticipado.

npmbash
# Early access — request the package via [email protected]
# (npm release to follow). Peer dependency:
npm install react-native-webview

iOS: instalar CocoaPods

Tras la instalación, ejecute cd ios && pod install para vincular la dependencia nativa de WebView.

Uso del componente

La forma más sencilla de integrar SilentShield es con el componente <SilentShield />:

ContactForm.tsxtsx
import { SilentShield } from '@silentshield/react-native';

function ContactForm() {
  const [token, setToken] = useState<string | null>(null);

  return (
    <View>
      {/* Your form fields */}
      <TextInput placeholder="Email" />
      <TextInput placeholder="Message" multiline />

      {/* SilentShield widget */}
      <SilentShield
        apiKey="YOUR_API_KEY"
        baseUrl="https://api.silentshield.io"
        onVerdict={(result) => {
          if (result.verdict === 'human') {
            setToken(result.token);
          }
        }}
        onError={(err) => console.error(err)}
        lang="en"
        theme="light"
      />

      <Button
        title="Submit"
        onPress={() => submitForm(token)}
        disabled={!token}
      />
    </View>
  );
}

Referencia de props

PropTypeRequiredDescripción
apiKeystringSíSu clave API de SilentShield
baseUrlstringSíURL base de la API de SilentShield
onVerdict(result) => voidSíCallback con el resultado del veredicto
onError(error) => voidNoCallback de error
onReady() => voidNoSe llama cuando el widget se ha cargado
langstringNoCódigo de idioma (predeterminado: "en")
zeroPiibooleanNoActiva el modo Zero-PII (sin fingerprinting)
theme"light" | "dark" | "auto"NoTema del widget
invisiblebooleanNoOculta el widget y verifica mediante programación

Uso del hook (programático)

Para la verificación invisible o flujos de interfaz personalizados, utilice el hook useSilentShield():

LoginScreen.tsxtsx
import { useSilentShield } from '@silentshield/react-native';

function LoginScreen() {
  const { verify, reset, isReady, isVerifying, WebViewComponent } =
    useSilentShield({
      apiKey: 'YOUR_API_KEY',
      baseUrl: 'https://api.silentshield.io',
    });

  const handleLogin = async () => {
    const result = await verify();
    if (result.verdict === 'human') {
      // Submit login with result.token
    }
  };

  return (
    <View>
      {/* Hidden WebView for behavior tracking */}
      {WebViewComponent}

      <TextInput placeholder="Email" />
      <TextInput placeholder="Password" secureTextEntry />

      <Button
        title={isVerifying ? 'Verifying...' : 'Log In'}
        onPress={handleLogin}
        disabled={!isReady || isVerifying}
      />
    </View>
  );
}

Modo invisible

En el modo invisible, la WebView se renderiza con altura y opacidad cero. El seguimiento del comportamiento se ejecuta en segundo plano y la verificación se lanza mediante programación con la función verify(). Es ideal para pantallas de inicio de sesión y procesos de pago.

CheckoutScreen.tsxtsx
<SilentShield
  apiKey="YOUR_API_KEY"
  baseUrl="https://api.silentshield.io"
  onVerdict={handleVerdict}
  invisible={true}  // No visible UI
/>

Recomendado: use el modo Zero-PII en móviles

Las huellas digitales del navegador recopiladas dentro de una WebView son menos fiables que en un navegador real. Recomendamos activar zeroPii={true} en las apps de React Native: así se desactiva el fingerprinting y la detección se basa por completo en señales de comportamiento.