ShareLink für Swift: Vollständige Anleitung mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

ShareLink für Swift: Vollständige Anleitung mit Beispielen

ShareLink ist eine integrierte Struktur im SwiftUI-Framework, die speziell für die Erstellung von „Teilen“-Schaltflächen in Swift-Apps entwickelt wurde. Sie bietet eine einfache und intuitive Schnittstelle zur Integration des systemeigenen Teilen-Blattes (UIActivityViewController), ohne dass komplexer UIKit-Code geschrieben werden muss. Die Bibliothek ist seit iOS 16, macOS 13, tvOS 16 und watchOS 9 verfügbar und hat sich seither als Standardmethode für die Implementierung von Content-Sharing in modernen SwiftUI-Apps etabliert.

Wozu braucht man ShareLink? In der heutigen Welt teilen Nutzer ständig Inhalte: Links, Fotos, Texte, Dateien. Die manuelle Implementierung des Teilens erfordert das Erstellen eines UIActivityViewController, die Konfiguration von Delegaten und die Verarbeitung verschiedener Datentypen. ShareLink übernimmt all diese Arbeit und stellt eine fertige SwiftUI-Komponente bereit, die sich automatisch an die Plattform und die Systemeinstellungen anpasst. Das beschleunigt nicht nur die Entwicklung, sondern garantiert auch ein einheitliches Benutzererlebnis auf allen Apple-Geräten.

Die Bibliothek eignet sich ideal für: soziale Apps (Teilen von Beiträgen), Nachrichten-Aggregatoren (Artikel teilen), Fotobearbeitungs-Apps (Bilder exportieren), Messenger (Dateien senden) und jede andere App, die eine „Teilen“-Funktion benötigt. ShareLink unterstützt alle gängigen Datentypen: Zeichenketten, URLs, Bilder, Dateien und benutzerdefinierte Elemente, die dem Transferable-Protokoll entsprechen.

Installation

ShareLink ist Teil des SwiftUI-Frameworks und erfordert daher keine separate Installation über Paketmanager. Für die Nutzung reicht es aus, SwiftUI in Ihr Projekt zu importieren:

import SwiftUI

Mindestanforderungen:

  • iOS 16.0+ / macOS 13.0+ / tvOS 16.0+ / watchOS 9.0+
  • Xcode 14.0+
  • Swift 5.7+

Wenn Sie ältere iOS-Versionen verwenden, müssen Sie UIActivityViewController direkt über UIViewRepresentable nutzen.

Schnellstart

Der einfachste Weg, ShareLink zu verwenden, ist die Übergabe einer Zeichenkette oder einer URL. Hier ist ein minimales funktionierendes Beispiel:

import SwiftUI

struct ContentView: View {
    var body: some View {
        ShareLink(item: URL(string: "https://pythonlib.ru")!) {
            Label("Link teilen", systemImage: "square.and.arrow.up")
        }
        .padding()
    }
}

Dieser Code erstellt eine Schaltfläche mit dem „Teilen“-Symbol. Beim Antippen öffnet sich das systemeigene Teilen-Blatt, in dem der Nutzer eine App zum Senden des Links auswählen kann.

Wichtige Methoden und Klassen

ShareLink bietet mehrere Initialisierer und Modifikatoren zur Anpassung. Hier sind 8 wichtige Funktionen.

1. ShareLink(item:)

Signatur: init(item: T, subject: Text? = nil, message: Text? = nil, @ViewBuilder label: () -> Label)

Funktion: Erstellt eine Teilen-Schaltfläche für ein einzelnes Element. Der Parameter item kann eine Zeichenkette, URL, ein Bild oder jeder Typ sein, der dem Transferable-Protokoll entspricht.

ShareLink(item: "Hallo, Welt!") {
    Text("Text teilen")
}

2. ShareLink(items:)

Signatur: init(items: [T], subject: Text? = nil, message: Text? = nil, @ViewBuilder label: () -> Label)

Funktion: Ermöglicht das gleichzeitige Teilen mehrerer Elemente (z. B. eines Foto-Arrays).

let images = [UIImage(named: "photo1")!, UIImage(named: "photo2")!]
ShareLink(items: images) {
    Label("Fotos teilen", systemImage: "photo.on.rectangle")
}

3. ShareLink(item:preview:)

Signatur: init(item: T, preview: SharePreview<T>, @ViewBuilder label: () -> Label)

Funktion: Erstellt eine Teilen-Schaltfläche mit einer Vorschau des geteilten Inhalts. Ideal für das Teilen von Bildern oder Dateien mit einer ansprechenden Vorschau.

ShareLink(item: image, preview: SharePreview("Urlaubsfoto", image: image)) {
    Label("Foto teilen", systemImage: "photo")
}

4. ShareLink(item:subject:message:)

Signatur: init(item: T, subject: Text? = nil, message: Text? = nil, @ViewBuilder label: () -> Label)

Funktion: Fügt einen Betreff und eine Nachricht hinzu, die in unterstützten Apps (z. B. Mail) vorausgefüllt werden.

ShareLink(item: "https://example.com", subject: Text("Schau dir das an!"), message: Text("Toller Artikel")) {
    Label("Link teilen", systemImage: "link")
}

5. ShareLink(item:preview:subject:message:)

Signatur: init(item: T, preview: SharePreview<T>, subject: Text? = nil, message: Text? = nil, @ViewBuilder label: () -> Label)

Funktion: Kombiniert Vorschau, Betreff und Nachricht für maximale Kontrolle über den geteilten Inhalt.

ShareLink(item: url, preview: SharePreview("Meine Seite"), subject: Text("Empfehlung"), message: Text("Schau mal vorbei!")) {
    Label("Seite teilen", systemImage: "safari")
}

6. .shareLink(isPresented:)

Signatur: .shareLink(isPresented: Binding<Bool>, item: T)

Funktion: Ein Modifikator, der das Teilen-Blatt programmatisch über einen booleschen Zustand öffnet. Nützlich für benutzerdefinierte Auslöser.

@State private var showShare = false

Button("Teilen") {
    showShare = true
}
.shareLink(isPresented: $showShare, item: "Zu teilender Text")

7. .shareLink(isPresented:items:)

Signatur: .shareLink(isPresented: Binding<Bool>, items: [T])

Funktion: Wie oben, aber für mehrere Elemente.

@State private var showShare = false

Button("Fotos teilen") {
    showShare = true
}
.shareLink(isPresented: $showShare, items: [photo1, photo2])

8. ShareLink mit benutzerdefiniertem Label

Signatur: init(item: T, @ViewBuilder label: () -> Label)

Funktion: Ermöglicht die vollständige Anpassung des Schaltflächen-Labels mit beliebigen SwiftUI-Views.

ShareLink(item: "Inhalt") {
    HStack {
        Image(systemName: "square.and.arrow.up.fill")
        Text("Jetzt teilen")
            .fontWeight(.bold)
    }
    .padding()
    .background(Color.blue)
    .foregroundColor(.white)
    .cornerRadius(10)
}

Praktische Beispiele

Beispiel 1: Text teilen

ShareLink(item: "Dieser Text wird geteilt!") {
    Label("Text teilen", systemImage: "text.alignleft")
}

Beispiel 2: URL teilen

if let url = URL(string: "https://pythonlib.ru") {
    ShareLink(item: url) {
        Label("Link teilen", systemImage: "link")
    }
}

Beispiel 3: Bild teilen

let image = UIImage(named: "beispielbild")!
ShareLink(item: image, preview: SharePreview("Bild", image: image)) {
    Label("Bild teilen", systemImage: "photo")
}

Fehlerbehebung

  • ShareLink wird nicht angezeigt: Stellen Sie sicher, dass Ihre App auf iOS 16+ oder macOS 13+ läuft.
  • Inhalt wird nicht geteilt: Prüfen Sie, ob der Datentyp dem Transferable-Protokoll entspricht. Für benutzerdefinierte Typen muss Transferable implementiert werden.
  • Vorschau wird nicht angezeigt: Verwenden Sie den preview-Parameter mit einem SharePreview-Objekt.

Fazit

ShareLink ist ein mächtiges und dennoch einfach zu bedienendes Werkzeug in SwiftUI, das die Implementierung von Teilen-Funktionen drastisch vereinfacht. Mit nur wenigen Zeilen Code können Sie Ihren Nutzern ermöglichen, Inhalte nahtlos über alle Apple-Plattformen hinweg zu teilen. Die Bibliothek ist ideal für Entwickler, die moderne, plattformkonforme Apps erstellen möchten, ohne sich mit den Details von UIKit herumschlagen zu müssen. Beginnen Sie noch heute mit der Integration von ShareLink in Ihre SwiftUI-Projekte und bieten Sie Ihren Nutzern ein erstklassiges Teilen-Erlebnis!

Empfehlungen