> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.poool.fr/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Comment intégrer Access sur iOS ?

Le SDK iOS de Poool Access permet d’intégrer des **paywalls dynamiques** pour contrôler l’accès aux contenus d’une application. Il offre plusieurs modes d’affichage (modale, intégré, vue personnalisée) et se personnalise facilement via des styles et textes modifiables. Les **templates de paywall et le parcours utilisateur** sont entièrement éditables depuis le **Dashboard Poool**, sans nécessiter de mise à jour de l’application.

Retrouvez aussi sur github notre documentation sur l'intégration 👉 [React Native](https://github.com/p3ol/react-native-access)

# Installation du SDK Poool Access iOS

Poool Access peut être installé de différentes manières en fonction de votre gestionnaire de dépendances.

## Installation via Swift Package Manager (SPM)

1. Ouvrez Xcode et accédez à **File > Add Packages...**.
2. Ajoutez le dépôt suivant : `https://github.com/p3ol/access-package-ios`.
3. Sélectionnez la version souhaitée et ajoutez le package à votre projet.
4. Dans vos fichiers Swift, importez le framework :

```
import AccessIOS
```

## Installation via CocoaPods

Ajoutez la dépendance suivante dans votre `Podfile` :

```
pod 'AccessIOS'
```

Puis exécutez `pod install`.

## Initialisation et configuration de Poool Access

Avant d’afficher un paywall, vous devez initialiser l’instance de Poool Access avec votre APP_ID.

```
import AccessIOS var access = Access(key: "VOTRE_APP_ID_POOOL")
```

Ensuite, vous pouvez configurer plusieurs options pour adapter l’expérience utilisateur à vos besoins.

## Configuration des paramètres globaux

```
access.config([   
  "subscription_url": "https://monsite.com/offres",   
  "login_url": "monappli://login",   
  "subscription_button_enabled": true,   
  "login_button_enabled": true,   
  "alternative_enabled": true,   
  "cookies_enabled": false,   
  "paywall_load_timeout": 10000 ],   
  readOnly: false  
)
```

Ces paramètres permettent de personnaliser l’affichage et le comportement du paywall, notamment l’intégration de liens d’abonnement et de connexion, ou encore la gestion du consentement utilisateur.

# Gestion de l’affichage des paywalls

## Format bottom-sheet

[![](https://storage.crisp.chat/users/helpdesk/website/-/4/6/e/d/46eda04f53d08000/31578c2a-e8e5-4410-b8cf-3d0e0d_1hcuwo9.png)](https://downloads.intercomcdn.com/i/o/s22rivig/1464411678/766afaaa9141440a718b5b00f588/IMG_5396.png?expires=1773414900&signature=58603ebebb5d8750c2ee04d7adf3168654d2ee3daf726e05f2947f041c9f3524&req=dSQhEs1%2FnIdYUfMW1HO4zbX%2BWmglIlME4I9AIA5R0Fhac%2BjBNpTf6rL%2BkZ5P%0AuP4fxneLZcCrGgkW4sA%3D%0A)

Le mode par défaut du paywall est un affichage en **modale**.

```
access.createPaywall(pageType: "premium")
```

## Format intégré dans une vue existante

[![](https://storage.crisp.chat/users/helpdesk/website/-/2/a/f/8/2af80ed4c716c600/9d4105e4-24d5-4f79-8277-1f9bb9_itovdr.png)](https://downloads.intercomcdn.com/i/o/s22rivig/1464844132/886f973f18188a4a373c35f00be3/IMG_5397+%281%29.png?expires=1773414900&signature=c18cc52b68b97e1ff6e253e970a2a665c91119f66eb7ac873124a0ad6345e6c2&req=dSQhEsF6mYBcW%2FMW1HO4zTXsTjygEF1G3HOq8GmnBA8Of89CO41MVyzN4JbX%0Ad%2Fn9roAplBxl5g3FApA%3D%0A)

Si vous souhaitez afficher le paywall directement au sein de votre interface, vous pouvez l’intégrer dans une vue spécifique.

```
access.createPaywall(pageType: "premium", view: targetView, percent: 80)
```

Le paramètre `percent` indique le pourcentage de la vue `targetView` qui sera recouvert par le paywall.

## Mode vue personnalisée

Il est également possible d’insérer le paywall sous forme d’une `UIView` manuelle pour un contrôle plus précis de son positionnement.

```
var paywallView: UIView? = access.createPaywall(pageType: "premium")
```

Cette approche permet une gestion plus fine du rendu et de l’affichage du paywall.

# Gestion des événements du paywall

Poool Access émet des événements qui permettent d’interagir avec le parcours utilisateur.

## Détection du déblocage du contenu

```
access.onRelease { widgetEvent in   
  print("Content unlocked with widget \(widgetEvent.widget) named \(widgetEvent.actionName)")  
}
```

Cet événement est déclenché lorsque l’utilisateur a terminé le parcours du paywall et a obtenu l’accès au contenu.

## Gestion des inscriptions et abonnements

```
access.onRegister { event in   
  print("User \(registerEvent.email) has registered to newsletter \(registerEvent.newsletterId)")  
}   
access.onSubscribeTapped { event in   
  print("User tapped on subscribe button \(clickEvent.button) in widget \(clickEvent.widget)")  
}
```

Ces événements permettent d’intercepter les actions d’inscription ou d’abonnement et d’y associer des traitements spécifiques.

## Intégration SwiftUI

Si votre application utilise SwiftUI, vous pouvez directement intégrer le paywall à vos vues SwiftUI.

```
import AccessIOS

struct ArticleView: View {  
  var access = Access   
  init(){  
    var access = Access(key: "VOTRE_APP_ID_POOOL")   
  }  
  var body: some View {   
    Text("first paragraph)  
    Text("first paragraph)   
      .createPaywall(access: access, pageType: "premium", percent: 80)   
  }   
}
```

Il est également possible de générer une vue indépendante du paywall en SwiftUI.

```
import AccessIOS

struct ArticleView: View {  
  var access = Access   
  init(){  
    var access = Access(key: "VOTRE_APP_ID_POOOL")   
  }  
  var body: some View {   
    Text("first paragraph)  
    Text("first paragraph)   
    access.createPaywall(pageType: "premium")   
  }   
}
```

En espérant que ce guide vous aura été utile et vous permettra d’intégrer Poool Access de manière optimale, n’hésitez pas à contacter notre équipe pour toute question ou assistance supplémentaire. 

​