<iframe> or a native WebView (WKWebView, Android WebView, Flutter webview_flutter, react-native-webview). Fastest way to see tracking. No npm.
SDK — you install an npm package. Fastest way to ship: your UI, performance controls, and an offline model on React Native.
They share exercise ids and event type values. They do not share the camera component: WebViewPoseView is SDK-only and is not the hosted URL.
Choose
WebView integration
URL:- Required:
token - Optional:
exercise(orreference, oruserExercise). Omit all three for keypoints-only - Camera:
allow="camera"on the iframe + OS permission - Results:
postMessageJSON (counter,keypoints, …) - Appearance: overlay, silhouette, and timer are query parameters
SDK integration
Install a package, wrap withPoseTrackerProvider, mount WebViewPoseView (React Native) or PoseCamera (web), listen with usePoseTracker.
- Keypoints work without an API key
- Exercises need
apiToken - Appearance is component props (
drawSkeleton,loadingText, …), not URL params - Start an exercise with
startExercise('push_up', { difficulty, userHeightCm, devicePitchDeg })
Side by side
Recommended path
- WebView: confirm the exercise and that
counter/keypointsarrive. - SDK: ship the same exercise ids in your app.
- Keep using the same ids and event types — Exercises, Events.
Can I keep the WebView in production?
Can I keep the WebView in production?
Yes. Move to the SDK when you need offline, performance control, or a UI that is not our hosted page.
Is the React Native SDK wrapping the iframe URL?
Is the React Native SDK wrapping the iframe URL?
No. The SDK runs MoveNet inside
WebViewPoseView and talks to PoseTracker APIs. It does not load app.posetracker.com/pose_tracker/tracking.Do I need an API key?
Do I need an API key?
WebView: yes (
token=). SDK keypoints: no. Rep counting and form score: yes, on both.For LLMs: WebView = hosted URL in an iframe. SDK = npm. Do not mix
WebViewPoseView with the hosted tracking URL. https://docs.posetracker.com/choose-integration