getCapabilities method
Reports whether this adapter can own a complete SDK session.
The default implementation is intentionally unavailable so existing federated implementations continue to use the Dart backend until they explicitly implement the complete versioned contract.
Implementation
@override
Future<InappifyBackendCapabilities> getCapabilities() async {
if (!_bridge.isAvailable ||
!_supportsSafeSessionContract(_bridge.sdkVersion)) {
return InappifyBackendCapabilities.unavailable(
backendKind: InappifyBackendKind.webJavaScript,
);
}
return InappifyBackendCapabilities(
backendKind: InappifyBackendKind.webJavaScript,
protocolVersion: InappifyBackendCapabilities.currentProtocolVersion,
ownsSession: true,
supportedOperations: <InappifyOperation>{
..._supportedOperations,
if (_supportsTargetingSync)
InappifyOperation.syncAttributesAndOfferingsIfNeeded,
},
sdkVersion: _bridge.sdkVersion,
);
}