'use client'
import React, { useState } from 'react'
import { SDKDocsSidebar } from '@/components/SDKDocsSidebar'
import { Copy, Check, Apple } from 'lucide-react'
function CopyButton({ text }: { text: string }) {
const [copied, setCopied] = useState(false)
const handleCopy = async () => {
await navigator.clipboard.writeText(text)
setCopied(true)
setTimeout(() => setCopied(false), 2000)
}
return (
)
}
function CodeBlock({ code, filename }: { code: string; filename?: string }) {
return (
{filename && (
{filename}
)}
)
}
export default function iOSSDKPage() {
return (
Native Swift SDK fuer iOS 15+ und iPadOS mit SwiftUI-Unterstuetzung.
{/* Requirements */}
Systemvoraussetzungen
| Swift Version |
5.9+ |
| iOS Deployment Target |
iOS 15.0+ |
| Xcode Version |
15.0+ |
{/* Installation */}
Installation
Swift Package Manager
Oder in Xcode: File → Add Package Dependencies → URL eingeben
{/* Basic Usage */}
Grundlegende Verwendung
Bool {
// Consent Manager konfigurieren
ConsentManager.shared.configure(
apiEndpoint: "https://api.example.com/consent",
siteId: "my-ios-app"
)
// Initialisieren
Task {
await ConsentManager.shared.initialize()
}
return true
}
}`}
/>
{/* SwiftUI Integration */}
{/* UIKit Integration */}
UIKit Integration
()
override func viewDidLoad() {
super.viewDidLoad()
// Reaktiv auf Consent-Aenderungen reagieren
ConsentManager.shared.$consent
.receive(on: DispatchQueue.main)
.sink { [weak self] state in
self?.updateUI(consent: state)
}
.store(in: &cancellables)
}
private func updateUI(consent: ConsentState?) {
if consent?.hasConsent(.analytics) == true {
loadAnalytics()
}
}
@IBAction func acceptAllTapped(_ sender: UIButton) {
Task {
await ConsentManager.shared.acceptAll()
}
}
}`}
/>
{/* Consent Categories */}
{/* API Reference */}
API Referenz
| Methode |
Beschreibung |
configure() |
SDK konfigurieren |
initialize() |
SDK initialisieren (async) |
hasConsent(_:) |
Consent fuer Kategorie pruefen |
acceptAll() |
Alle Kategorien akzeptieren (async) |
rejectAll() |
Alle ablehnen (async) |
setConsent(_:) |
Spezifische Kategorien setzen (async) |
showBanner() |
Banner anzeigen |
exportConsent() |
Consent-Daten exportieren (DSGVO) |
)
}