React Native-integration
Integrera SilentShield i React Native-appar med en WebView-baserad wrapper. Widgeten körs i en lättviktig WebView och kommunicerar med din app via React Natives meddelandebrygga.
Installation
Early Access
React Native-paketet är för närvarande i early access — begär det via [email protected]; npm-släppet följer. Exemplen nedan visar early access-paketets API.
# Early access — request the package via [email protected]
# (npm release to follow). Peer dependency:
npm install react-native-webviewiOS: Installera CocoaPods
Kör cd ios && pod install efter installationen för att länka det inbyggda WebView-beroendet.
Använda komponenten
Det enklaste sättet att integrera SilentShield är med komponenten <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>
);
}Props-referens
| Prop | Type | Required | Beskrivning |
|---|---|---|---|
| apiKey | string | Ja | Din SilentShield-API-nyckel |
| baseUrl | string | Ja | Bas-URL för SilentShield-API:t |
| onVerdict | (result) => void | Ja | Callback med bedömningens resultat |
| onError | (error) => void | Nej | Fel-callback |
| onReady | () => void | Nej | Anropas när widgeten har laddats |
| lang | string | Nej | Språkkod (standard: "en") |
| zeroPii | boolean | Nej | Aktivera Zero-PII-läge (inga fingeravtryck) |
| theme | "light" | "dark" | "auto" | Nej | Widgetens tema |
| invisible | boolean | Nej | Dölj widgeten, verifiera programmatiskt |
Använda hooken (programmatiskt)
För osynlig verifiering eller anpassade UI-flöden använder du hooken 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>
);
}Osynligt läge
I osynligt läge renderas WebView med noll höjd och noll opacitet. Beteendespårningen körs i bakgrunden, och du startar verifieringen programmatiskt via funktionen verify(). Det är idealiskt för inloggningsskärmar och kassaflöden.
<SilentShield
apiKey="YOUR_API_KEY"
baseUrl="https://api.silentshield.io"
onVerdict={handleVerdict}
invisible={true} // No visible UI
/>Rekommendation: använd Zero-PII-läge i mobilen
Webbläsarfingeravtryck som samlas in i en WebView är mindre tillförlitliga än i en riktig webbläsare. Vi rekommenderar att aktivera zeroPii={true} för React Native-appar, vilket stänger av fingeravtryck och helt förlitar sig på beteendesignaler.