Objects
The shape of every object the SDK returns or delivers on an event.
NativeCommandResult
What legacy dispatch-style browser commands resolve to. It tells you whether the call reached the app — not the outcome of the native action (that arrives on an event). The common case is triggered: true. Outside the app a command comes back with triggered: false — pending in a browser tab, skipped in a non-DOM environment.
Action results
What namespaced helpers such as bdk.media.pickPhotos and bdk.iap.products resolve to. On success ok is true and extra helper-specific fields may be present; on failure it is false with code and message — branch on !result.ok or isBdkError(result). Outside the app, Action-result helpers resolve ok: false with a code like common/feature_disabled or common/timeout (branch on !result.ok); legacy commands resolve triggered: false (branch on !result.triggered).
BdkDeviceInfo
The device snapshot returned by bdk.ready() and bdk.getDeviceInfo(), and delivered on the deviceInfo event. Most fields are null until the app reports them; biometricsAvailable and smartLoginAvailable are required booleans, and idfa, appTrackingPermissionStatus, and viewType are optional (absent until reported, not null).
BdkCapabilities
Returned by bdk.capabilities.get(), and delivered on the capabilities event. null from get() means the snapshot is unknown — not that every feature is off.
MediaResult
Delivered by photoCaptured, photoSelected, and audioRecorded. Use dataUri to preview inline and fileUrl to upload.
BdkMediaItem
A JPEG from bdk.media.pickPhotos() or bdk.media.takePhoto(). Exactly one of base64 or fileUrl is set; the other is null.
BiometricResult
Delivered on the biometricResult event after bdk.auth.authenticateBiometrics().
SmartLoginCredentials
Delivered on the smartLoginCredentials event. If either field is null, nothing usable is saved — fall back to your login screen.
DeviceVariableResult
Delivered on the deviceVariable event after reading a cached value.
UrlParam
A query parameter you pass to bdk.navigation.openLink({ urlParams }).
BdkError
Thrown by a rejected command and passed to the onError config callback and the error event.
BdkContact
A contact from bdk.contacts.pick() or bdk.contacts.list().
Permission entry
One value in the permissions map from bdk.permissions.status() and the permissions.changed event.
BdkDeepLinkRecord
Delivered on deeplink.received. URL form (form: "url") already navigated; path form (form: "path") is for in-page routing.
BdkIapProduct
A store product from bdk.iap.products().
BdkIapEntitlement
A current entitlement from bdk.iap.entitlements() or bdk.iap.restore().
IAP purchase completed
Delivered on iap.purchaseCompleted. pending is not a final grant — keep listening.
BdkPushDataMessage
One retained background data message from bdk.push.getDataMessages(); live arrivals carry the same fields on push.dataReceived.
Health results
Returned by bdk.health.status() and bdk.health.aggregate(). Type ids are steps, distance, activeCalories, heartRate, restingHeartRate, weight, height, bloodOxygen, sleep, and workouts.
Status from bdk.health.status():
Aggregate from bdk.health.aggregate():
NFC tag
Returned by bdk.nfc.read() and bdk.nfc.getLaunchTag(), and as tag on nfc.launchTag. id is null on iOS and a lowercase hex string on Android.
Event payloads
A few events deliver raw native data rather than a fixed object. Here's what each one contains.