Zum Hauptinhalt springen

Rahmenlos-Display in Capacitor ohne Plugins

Erhalten Sie Informationen, wie Sie ein Rahmenlos-Display in Ihren Capacitor-Anwendungen richtig konfigurieren können, ohne Plugins oder Hacks.

Martin Donadieu

Martin Donadieu

Inhaltsmarketer

Rahmenlos-Display in Capacitor ohne Plugins

Versuchen Sie, ein Rahmenlos-Display in Ihrer Capacitor-Anwendung umzusetzen? Sie benötigen keine Hacks, Plugins oder Workarounds. Capacitor unterstützt offiziell Rahmenlose-Display über die adjustMarginsForEdgeToEdge Konfigurationsoption - es ist einfach nicht weit verbreitet dokumentiert.

Viele Entwickler haben Schwierigkeiten mit Rahmenlos-Layouts in Capacitor-Anwendungen, insbesondere bei der Zielgruppe Android 15+. Sie greifen oft auf benutzerdefinierte Plugins oder CSS-Hacks zurück, um das moderne Rahmenlose-Aussehen zu erreichen. Aber es gibt eine bessere, native Lösung.

Was ist Rahmenloses-Display?

Rahmenloses-Display ermöglicht es Ihrem App-Inhalt, hinter den Systemleisten (Statusleiste und Navigationsleiste) zu reichen, was eine immersivere, moderne Benutzeroberfläche schafft. Ab Android 15 drängt Google Rahmenloses-Display als Standard für alle Apps.

Die offizielle Lösung: adjustMarginsForEdgeToEdge

Capacitor bietet die adjustMarginsForEdgeToEdge Konfigurationsoption speziell für diesen Zweck an. Dies ist in der offiziellen Capacitor-Konfigurationsdokumentation dokumentiertAber es ist leicht zu übersehen.

Wie es konfiguriert wird

Hinzufügen Sie dies zu Ihrem capacitor.config.ts oder capacitor.config.json:

import { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  appId: 'com.example.app',
  appName: 'My App',
  webDir: 'dist',
  android: {
    adjustMarginsForEdgeToEdge: 'auto' // or 'force' or 'disable'
  }
};

export default config;

Oder in JSON-Format:

{
  "appId": "com.example.app",
  "appName": "My App",
  "webDir": "dist",
  "android": {
    "adjustMarginsForEdgeToEdge": "auto"
  }
}

Konfigurationsmöglichkeiten

Die adjustMarginsForEdgeToEdge Option akzeptiert drei Werte:

adjustMarginsForEdgeToEdge: 'auto'

Was es tut: Automatisch überprüft Android 15+ und die windowOptOutEdgeToEdgeEnforcement Einstellung. Anpassen Sie die Margen intelligent basierend auf dem Gerät und der Konfiguration.

Best for: Für die meisten Produktionsanwendungen, die auf unterstützten Geräten eine Rand-zu-Rand-Ansicht haben möchten, während die Kompatibilität mit älteren Android-Versionen aufrechterhalten bleibt.

2. "force"

adjustMarginsForEdgeToEdge: 'force'

Was es tut: Zwingt Anpassungen der Randabstände für Rand-zu-Rand unabhängig von der Android-Version oder anderen Einstellungen.

Best for: Apps, die eine Rand-zu-Rand-Ansicht auf allen unterstützten Android-Versionen haben möchten.

3. "disable"

adjustMarginsForEdgeToEdge: 'disable'

Was es tut: Deaktiviert die automatischen Anpassungen der Randabstände vollständig.

Best for: Apps, die die Rand-zu-Rand-Ansicht manuell handhaben oder keine Rand-zu-Rand-Ansicht haben möchten.

Hinweis: Aktuell "disable" ist die Standard, aber dies wird sich ändern zu "auto" in Capacitor 8.

Warum Dies für Android 15+ wichtig ist

Ab Android 15 erzwingt Google den edge-to-edge-Display als Standardverhalten. Apps, die diesen edge-to-edge-Ansatz nicht richtig handhaben, können UI-Probleme wie:

  • Inhalt, der hinter den Systemleisten verborgen ist
  • Unangenehmes Abstand und Padding
  • Unkonsistente Erscheinung auf verschiedenen Geräten
  • Schlechte Benutzererfahrung

Durch die Verwendung der offiziellen adjustMarginsForEdgeToEdge Konfiguration stellen Sie sicher, dass Ihre App diese Änderungen richtig handhabt, ohne benutzerdefinierte code.

Vollständiges Beispiel

Hier ist ein vollständiges Beispielkonfiguration für eine moderne Capacitor-App:

import { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  appId: 'com.example.myapp',
  appName: 'My Awesome App',
  webDir: 'www',
  server: {
    androidScheme: 'https'
  },
  android: {
    // Enable edge-to-edge automatically on supported devices
    adjustMarginsForEdgeToEdge: 'auto',

    // Other Android config options...
    backgroundColor: '#ffffff'
  }
};

export default config;

CSS-Überlegungen

Wenn Sie einen Rand-zu-Rand-Bildschirm verwenden, müssen Sie möglicherweise einige CSS hinzufügen, um sichere Bereiche zu handhaben:

/* Add padding for system bars */
body {
  padding-top: env(safe-area-inset-top);
  padding-bottom: env(safe-area-inset-bottom);
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}

/* Or use viewport-fit */
meta[name="viewport"] {
  content: "width=device-width, initial-scale=1, viewport-fit=cover";
}

Ihrer Konfiguration

Nach der Konfiguration, testen Sie Ihre App auf: adjustMarginsForEdgeToEdgeAndroid-Geräte ab Version 15

  1. - Überprüfen Sie, ob der Inhalt die Systemleisten korrekt respektiert Ältere Android-Versionen
  2. - Stellen Sie sicher, dass die Kompatibilität mit älteren Versionen gewährleistet ist Verschiedene Bildschirmgrößen
  3. - Überprüfen Sie, ob die Layouts auf verschiedenen Geräten funktionieren Helligkeit und Dunkelheitsthemen
  4. Ihrer Konfiguration - Beide Theme-Modi testen

Gemeinsame Fehler zu vermeiden

Verwende keine Plugins für dies

Du benötigst keine dritten Partei-Plugins wie capacitor-edge-to-edge oder ähnliche. Die native Konfiguration handhabt dies sauber. Wenn du fein abgestimmte Kontrolle über das System-Chrome benötigst, nachdem du adjustMarginsForEdgeToEdge, @capgo/capacitor-Navigationsleiste und @capgo/Heim-Indikator erweitern die native Konfiguration ohne sie zu ersetzen.

Verwirre nicht mit manuellen Implementierungen

Wenn du adjustMarginsForEdgeToEdge, entferne alle manuellen Fenster-Einrastungen-Handling oder CSS-Hacks, die du hinzugefügt hast.

Denken Sie an Safe Area CSS

Die Konfiguration handhabt die Anpassung der Margen, aber Sie müssen immer noch CSS-Safe-Area-Einrückungen verwenden, um eine korrekte Inhaltsabstände zu gewährleisten.

Migrationsleitfaden

Wenn Sie derzeit Plugins oder Hacks für edge-to-edge verwenden:

  1. Entfernen Sie alle edge-to-edge-Plugins aus Ihren Abhängigkeiten
  2. Fügen Sie die Konfigurationsoption zu Ihrem capacitor.config.ts
  3. Reinigen und neu erstellen Ihren Android-Projekt
  4. Testen Sie gründlich auf Zielgeräten
# Clean the Android project
npx cap sync android
cd android
./gradlew clean
cd ..

# Rebuild
npx cap copy android
npx cap open android

Zukunfts-Sicherheit

Denken Sie daran, dass Capacitor 8 den Standardwert setzen wird "auto" Die Vorbereitung:

  1. Testen Sie mit "auto" jetzt um frühzeitig Probleme zu erkennen
  2. Aktualisieren Sie Ihre CSS um sicherzustellen, dass sichere Bereiche korrekt behandelt werden
  3. Überprüfen Sie Ihre Layouts auf Geräten mit aktivierter Randlos-Option

Zusätzliche Ressourcen

Zusammenfassung

Ein Edge-to-Edge-Bildschirm in Capacitor erfordert keine Plugins, Hacks oder komplizierte Workarounds. Die adjustMarginsForEdgeToEdge Konfigurationsoption bietet eine saubere, native Lösung, die offiziell unterstützt und zukunftssicher ist.

Beginnen Sie mit "auto" Für die meisten Apps, testen Sie gründlich auf verschiedenen Geräten und fügen Sie den entsprechenden sicheren Bereich CSS hinzu. Ihre App ist mit minimalen Anstrengungen für Android 15 und darüber hinaus bereit.

Fragen oder stoßen Sie auf Probleme? Die Capacitor-Community und die offizielle Dokumentation sind großartige Ressourcen für zusätzliche Hilfe.

Fortsetzen Sie von Edge-to-Edge-Bildschirm in Capacitor ohne Plugins

If Sie __CAPGO_KEEP_0__ verwenden Edge-to-Edge Display in Capacitor ohne Plugins um native Medien und Schnittstellenverhalten zu planen, verbinden Sie es mit Verwenden Sie @capgo/capacitor-live-aktivitäten für die native Fähigkeit in Verwenden Sie @capgo/capacitor-live-aktivitäten, @capgo/capacitor-live-aktivitäten für die Implementierungsdetails in @capgo/capacitor-live-aktivitäten, Verwenden Sie @capgo/capacitor-video-player für die native Fähigkeit in Verwenden Sie @capgo/capacitor-video-player, @capgo/capacitor-video-player für die Implementierungsdetails in @capgo/capacitor-video-player und Verwenden Sie @capgo/capacitor-native-navigations für die native Fähigkeit in Using @capgo/capacitor-native-navigation.

Live-Updates für Capacitor-Apps

Wenn ein Fehler im Weblayer live ist, liefern Sie die Reparatur über Capgo anstatt Tage auf die Genehmigung des App-Stores zu warten. Die Benutzer erhalten die Aktualisierung im Hintergrund, während native Änderungen im normalen Review-Prozess bleiben.

Los geht's jetzt

Neuestes aus unserem Blog

Capgo bietet Ihnen die besten Einblicke, die Sie benötigen, um eine wirklich professionelle mobile App zu erstellen.