Integracija za React Native
Integrirajte SilentShield u React Native aplikacije pomoću omotača temeljenog na WebViewu. Widget radi unutar laganog WebViewa i s vašom aplikacijom komunicira putem React Native mosta za poruke.
Instalacija
Early Access
Paket React Native trenutno je u ranom pristupu — zatražite ga na [email protected]; objava na npm-u slijedi. Primjeri u nastavku prikazuju API paketa iz ranog pristupa.
# Early access — request the package via [email protected]
# (npm release to follow). Peer dependency:
npm install react-native-webviewiOS: instalirajte CocoaPods
Nakon instalacije pokrenite cd ios && pod install kako biste povezali izvornu WebView ovisnost.
Korištenje komponente
Najjednostavniji način integracije SilentShielda je komponenta <SilentShield />:
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>
);
}Referenca propsa
| Prop | Type | Required | Opis |
|---|---|---|---|
| apiKey | string | Da | Vaš SilentShield API ključ |
| baseUrl | string | Da | Osnovni URL SilentShield API-ja |
| onVerdict | (result) => void | Da | Callback s rezultatom ocjene |
| onError | (error) => void | Ne | Callback pri pogrešci |
| onReady | () => void | Ne | Poziva se kada je widget učitan |
| lang | string | Ne | Kôd jezika (zadano: "en") |
| zeroPii | boolean | Ne | Uključuje Zero-PII način (bez uzimanja otisaka) |
| theme | "light" | "dark" | "auto" | Ne | Tema widgeta |
| invisible | boolean | Ne | Sakriva widget, provjera se pokreće programski |
Korištenje hooka (programski)
Za nevidljivu provjeru ili vlastite tijekove korisničkog sučelja koristite hook useSilentShield():
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>
);
}Nevidljivi način
U nevidljivom načinu WebView se iscrtava s nultom visinom i neprozirnošću. Praćenje ponašanja radi u pozadini, a provjeru pokrećete programski funkcijom verify(). To je idealno za zaslone za prijavu i tijekove naplate.
<SilentShield
apiKey="YOUR_API_KEY"
baseUrl="https://api.silentshield.io"
onVerdict={handleVerdict}
invisible={true} // No visible UI
/>Preporuka: za mobilne uređaje koristite Zero-PII način
Otisci preglednika prikupljeni unutar WebViewa manje su pouzdani nego u pravom pregledniku. Za React Native aplikacije preporučujemo uključiti zeroPii={true}, čime se isključuje uzimanje otisaka, a provjera se u potpunosti oslanja na signale ponašanja.