- project.yml mit Bundle ev.mana.zitare + Widget + ShareExt-Targets - ManaSwiftCore (ManaCore + ManaTokens) + ManaSwiftUI (ManaAuthUI) als Package-Dependencies via path: - Pure SwiftUI für Native-Surfaces, WKWebView nur für Lese-Tabs (Hybrid-Sonderfall vs cards/memoro/manaspur, dokumentiert im Playbook ZITARE_NATIVE_GREENFIELD.md) - Theme: paper-Variant aus @mana/themes - ZitareAPI.healthCheck via direct URLSession (öffentlicher Endpoint, kein AuthenticatedTransport-Gate) - 6/6 AppConfigTests + 1/1 UI-Smoke grün auf iPhone 16e Simulator - Live: zitare-api.mana.how/healthz → HTTP/2 200 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
38 lines
1.4 KiB
Swift
38 lines
1.4 KiB
Swift
import SwiftUI
|
|
|
|
/// Phase ζ-1 Placeholder.
|
|
///
|
|
/// Wird in ζ-1 zu einer echten `UIViewRepresentable`/
|
|
/// `NSViewRepresentable` um `WKWebView`. Aufgabenliste in ζ-1:
|
|
///
|
|
/// - WebView-Konfiguration: `WKWebViewConfiguration` mit non-persistent
|
|
/// DataStore in Debug-Builds; Persistent in Release.
|
|
/// - Cookie-Bridge: nach ManaCore-Login JWT als `mana.access`-Cookie
|
|
/// für `.mana.how` ins `WKHTTPCookieStore` schreiben.
|
|
/// - Pull-to-Refresh via `UIRefreshControl` (iOS) /
|
|
/// `NSScrollView` (macOS).
|
|
/// - `WKNavigationDelegate` für Deep-Link-Catching: wenn der WebView
|
|
/// eine Navigation auf `zitare://` oder eine andere mana-Domain
|
|
/// versucht, abfangen und natively routen.
|
|
/// - `WKUIDelegate` für `target=_blank`-Links (Safari öffnen, nicht
|
|
/// im WebView).
|
|
/// - Native-Toolbar overlay (ζ-5).
|
|
///
|
|
/// Heute nur die Signatur, damit `RootView` schon den finalen
|
|
/// Import-Pfad nutzt.
|
|
struct WebShellView: View {
|
|
let initialURL: URL
|
|
|
|
var body: some View {
|
|
VStack(spacing: 12) {
|
|
Text("WebShellView")
|
|
.font(.headline)
|
|
Text("ζ-1 — TODO: WKWebView auf \(initialURL.absoluteString)")
|
|
.font(.caption)
|
|
.foregroundStyle(.secondary)
|
|
.multilineTextAlignment(.center)
|
|
.padding(.horizontal)
|
|
}
|
|
.frame(maxWidth: .infinity, maxHeight: .infinity)
|
|
}
|
|
}
|