Embed — subway-runner
All three integration methods for Subway Runner. See the Embed overview for provider setup and shared components.
iframe
<iframe
src="https://games.beta-gamer.com/embed/subway-runner?session=eyJhbGci..."
width="400" height="700"
allow="fullscreen"
style="border: none; border-radius: 12px;"
/>React @beta-gamer/react
import {
BetaGamerProvider,
SubwayRunnerGame,
SubwayRunnerScore,
SubwayRunnerLives,
PlayerCard,
} from '@beta-gamer/react';
export default function SubwayRunnerPage({ sessionToken }: { sessionToken: string }) {
return (
<BetaGamerProvider token={sessionToken}>
<div className="your-layout">
<PlayerCard player="self" className="player-card" />
<SubwayRunnerScore className="score" />
<SubwayRunnerLives className="lives" />
<SubwayRunnerGame className="game" />
</div>
</BetaGamerProvider>
);
}Subway Runner-specific socket events
import { useSocket } from '@beta-gamer/react';
const socket = useSocket();
socket.on('runner:score', (score: number) => { /* update scoreboard */ });
socket.on('runner:lives', (lives: number) => { /* update lives display */ });
socket.on('runner:action', ({ playerId, action }) => { /* "jump" | "slide" | "left" | "right" */ });React Native @beta-gamer/react-native
import {
BetaGamerProvider,
SubwayRunnerGame,
SubwayRunnerScore,
SubwayRunnerLives,
} from '@beta-gamer/react-native';
export default function SubwayRunnerScreen({ sessionToken }: { sessionToken: string }) {
return (
<BetaGamerProvider token={sessionToken}>
<View style={styles.layout}>
<SubwayRunnerScore style={styles.score} textStyle={styles.scoreText} />
<SubwayRunnerLives style={styles.lives} lifeStyle={styles.lifeIcon} />
<SubwayRunnerGame style={styles.game} />
</View>
</BetaGamerProvider>
);
}Beta Gamer GaaS API — questions? support@beta-gamer.com