Marketplace

Integrar juegos del marketplace con WebView.

Las campanas con juegos del marketplace se ejecutan en un WebView con un bridge de comunicacion via postMessage.

Uso

if (campaign.isMarketplaceGame) {
  Navigator.push(context, MaterialPageRoute(
    builder: (_) => SouthGamesGameView(
      campaign: campaign,
      externalUserId: 'user_123',
      onResult: (result) {
        print(result.won ? 'Ganaste!' : 'No ganaste');
        Navigator.pop(context);
      },
      onClose: () => Navigator.pop(context),
      onError: (error) => print('Error: $error'),
    ),
  ));
}

Parametros de SouthGamesGameView

ParametroTipoDescripcion
campaign*CampaignLa campana con juego del marketplace
externalUserId*StringID del usuario
onResult*Function(PlayResponse)Callback cuando el juego termina
onCloseVoidCallback?Callback cuando el usuario cierra
onErrorFunction(String)?Callback en caso de error

Como funciona

  1. El SDK carga campaign.embedUrl en un WebView sandboxeado
  2. El juego HTML5 se comunica via postMessage con el SDK
  3. Al terminar, el SDK envia el resultado al backend y llama onResult

Detectar juegos de marketplace

final campaigns = await SouthGamesSDK.getCampaigns();

for (final c in campaigns) {
  if (c.isMarketplaceGame) {
    // Usar SouthGamesGameView
  } else {
    // Renderizar UI nativa (spin wheel, scratch card, etc.)
  }
}