getCapabilities method

  1. @override
Future<InappifyBackendCapabilities> getCapabilities()
inherited

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,
  );
}