Zum Inhalt springen
WebViewGold Vibe Coding in den App Store
Deutsch
WebViewGold holen

Lovable + Gerätespeicher

Nativer Speicher und eine Geräte-ID für deine Lovable-App

Nutzer erwarten, dass sich eine App an sie erinnert. Cookies und localStorage halten deine Lovable-App meist eingeloggt, sind aber Web-Speicher und verschwinden mit dem Cache. WebViewGold ergänzt zwei kleine native Helfer: einen dauerhaften Wertespeicher (writevalue:// und readvalue://) für Einstellungen und das Wiederherstellen der Session sowie eine Geräte-UUID (get-uuid://) für gerätegebundene Lizenzen, vertrauenswürdige Geräte und Einstellungen pro Gerät auf deinem Server.

Ab $109 einmalig pro Plattform, oder unser Team erledigt alles ab $698.

  • Genehmigungsgarantie – oder Geld zurück innerhalb von 14 Tagen
  • Kein Programmieren nötig
  • Einmalzahlung, kostenlose Updates
  • 24/7 Support von echten Menschen
  • Made in Germany seit 2014 · ISO 27001

Zwei native Helfer

Read/Write Value API

writevalue:// speichert alles nach dem Schema als einen einzigen String im privaten Speicher der App; readvalue:// injiziert ihn wieder in die Seite, als window.storedValues auf iOS und window.appSettings auf Android. Die Werte überstehen Neustarts und das Leeren des Caches und verschwinden, wenn die App deinstalliert wird (auf Android auch, wenn ihre App-Daten gelöscht werden).

UUID API

get-uuid:// setzt die JavaScript-Variable uuid, eine nicht personenbezogene, eindeutige Geräte-ID. Alternativ hängst du sie einmal als ?uuid=XYZ an die erste Anfrage an (enhanceUrlUUID / UUID_ENHANCE_WEBVIEW_URL) oder injizierst sie auf jeder Seite (autoInjectVariable / AUTO_INJECT_VARIABLES).

Was es nicht ist

Nicht über Geräte synchronisiert, keine Datenbank, kein Passwort-Tresor. Halte die Werte klein (Einstellungen, Flags, ein widerrufbares Token), lass Nutzerdaten in Supabase oder Lovable Cloud (Postgres, Storage, Edge Functions) und betrachte die UUID nie als Identitätsnachweis.

Prompt für Lovable

Füge das in Lovable ein, um die Web-App-Seite umzusetzen. Prüfe das Ergebnis, veröffentliche und teste dann in der WebViewGold-App.

Prompt zum Einfügen in Lovable
Füge native Persistenz für den App-Wrapper WebViewGold hinzu. 1) Erstelle src/lib/nativeStore.ts mit inApp() (navigator.userAgent enthält mein WebViewGold-Token), writeValues(obj), das zu writevalue:// navigiert, gefolgt von key=value-Paaren, die mit Semikolons verbunden sind (Werte nur aus Buchstaben, Ziffern, Punkt, Bindestrich und Unterstrich), und readValues(), das zu readvalue:// navigiert und nach 250 ms window.storedValues (iOS) oder window.appSettings (Android) parst; außerhalb der App nutzt du stattdessen localStorage. 2) Abonniere supabase.auth.onAuthStateChange und schreib bei SIGNED_IN und TOKEN_REFRESHED rt=REFRESH_TOKEN zusammen mit theme und lang. 3) Wenn supabase.auth.getSession() beim App-Start keine Session liefert, lies die Werte und ruf, falls rt existiert, supabase.auth.refreshSession({ refresh_token: rt }) auf. 4) Lies nach dem Login die globale Variable uuid (navigiere einmal zu get-uuid://, falls sie undefined ist) und füge sie per Upsert in eine Tabelle devices (user_id, uuid, platform, last_seen) mit RLS ein. 5) Füge in den Einstellungen eine Liste „Angemeldete Geräte“ mit Entfernen hinzu. 6) Schreib die Werte beim Logout ohne rt neu. Löse nie zwei native Schemes im selben Tick aus.

Großartige Arbeit! Ich habe noch nie etwas programmiert, aber ich konnte damit arbeiten. Einfach und schnell! Auch mit großartiger Hilfe von den Erstellern!

Lucas Dubois · CodeCanyon

Wo es einen Unterschied macht

Eingeloggt bleiben

Schreib nach dem Login ein widerrufbares Refresh-Token. Ist die Web-Session nach dem Leeren des Caches weg, liest du es beim Start zurück und stellst die Session unbemerkt wieder her, statt den Login-Bildschirm zu zeigen.

Einstellungen, die sofort greifen

Theme, Sprache, Einheiten, „Onboarding erledigt“, der zuletzt geöffnete Workspace: beim Start lokal gelesen, bevor dein Backend antwortet, und sogar offline.

Gerätegebundene Lizenzen

„Pro läuft auf zwei Geräten“: Registriere die UUID bei der Aktivierung, zähle die aktiven Geräte auf dem Server und biete einen Bildschirm „Geräte verwalten“ an, um einen Platz freizugeben.

Vertrauenswürdige Geräte

Überspring den zweiten Faktor oder den E-Mail-Code auf einem Gerät, das der Nutzer bereits bestätigt hat, und zeig „Angemeldet auf: iPhone, Pixel“ mit einer Abmeldung pro Gerät.

Kiosks und geteilte Tablets

Ein iPad am Empfang oder ein Scanner-Smartphone im Lager, das immer denselben Standort oder dieselbe Station öffnen soll: Speichere die Stations-ID pro Gerät.

In eine Lovable-App einbauen

Rund eine Stunde, plus eine Geräte-Tabelle in deinem Backend.

  1. Die App erkennen

    Leg einen eigenen User Agent in Config.swift (useragent_iphone, useragent_ipad) und Config.java (USER_AGENT) fest und ruf die Schemes nur auf, wenn er passt. Im Browser greifst du auf localStorage zurück.

  2. Ein sicheres Format wählen

    Alles nach writevalue:// wird unverändert als ein String gespeichert, nutze also ein einfaches Format key=value;key=value mit URL-sicheren Werten (Buchstaben, Ziffern, Punkt, Bindestrich, Unterstrich). Jeder Schreibvorgang ersetzt den ganzen String, schreib also immer alle Keys.

  3. Beim Start lesen

    Navigiere zu readvalue://, warte einen Moment (die Doku nutzt 200 ms) und parse window.storedValues (iOS) oder window.appSettings (Android). Wende zuerst Theme und Sprache an und stell dann bei Bedarf die Login-Session wieder her.

  4. Das Gerät registrieren

    Lies nach dem Login uuid aus (nach get-uuid:// oder automatisch mit der Auto-Inject-Option) und speichere sie beim Nutzer in Supabase oder Lovable Cloud (Postgres, Storage, Edge Functions): User-ID, UUID, Plattform, zuletzt gesehen. Setz Gerätelimits auf dem Server durch, nie im Client.

  5. Aufräumen

    Schreib den Wert beim Logout ohne das Token neu und widerrufe es auf dem Server. Bei der Kontolöschung löschst du auch die Gerätezeilen (Guide zur Kontolöschung).

  6. Die iOS-Regel „ein Aufruf pro Durchlauf“ beachten

    iOS verarbeitet pro Skriptdurchlauf nur eine Schema-Navigation, verkette Aufrufe also mit kurzen Verzögerungen (oder nutze multiapicall://, das get-uuid unterstützt), statt sie im selben Tick abzufeuern.

Ein kleiner Wrapper für beide Plattformen

Dieselbe API in der App und im Browser. Ersetze YourAppToken durch deinen eigenen User Agent.

javascript
var inApp = navigator.userAgent.indexOf("YourAppToken") !== -1;

function nativeWrite(values) {                 // { rt: "abc123", theme: "dark", lang: "de" }
  var str = Object.keys(values).map(function (k) { return k + "=" + (values[k] || ""); }).join(";");
  if (!inApp) { try { localStorage.setItem("appValues", str); } catch (e) {} return; }
  window.location.href = "writevalue://" + str;
}

function parseValues(str) {
  var out = {};
  String(str || "").split(";").forEach(function (pair) {
    var i = pair.indexOf("=");
    if (i > 0) out[pair.slice(0, i)] = pair.slice(i + 1);
  });
  return out;
}

function nativeRead(callback) {
  if (!inApp) { callback(parseValues(localStorage.getItem("appValues"))); return; }
  window.location.href = "readvalue://";
  setTimeout(function () {
    callback(parseValues(window.storedValues || window.appSettings));  // iOS || Android
  }, 250);
}

function nativeDeviceId(callback) {
  if (!inApp) { callback(null); return; }
  if (typeof uuid !== "undefined") { callback(uuid); return; }        // automatisch injiziert
  window.location.href = "get-uuid://";
  setTimeout(function () { callback(typeof uuid !== "undefined" ? uuid : null); }, 250);
}

Datenschutz und Review

  • Wenn du die UUID auf deinem Server speicherst, gib in App Privacy „Geräte-ID“ an (mit dem Nutzer verknüpft, wenn du sie beim Konto speicherst) und im Data-safety-Formular von Google Play „Geräte- oder andere IDs“.
  • Nutze sie nur für deine eigenen Features. Sie an Werbenetzwerke oder Datenhändler weiterzugeben oder mit Daten anderer Unternehmen zu verknüpfen, ist Tracking im Sinne von Guideline 5.1.2 und braucht die ATT-Abfrage (App Tracking Transparency).
  • Kombiniere die UUID nicht mit anderen Gerätesignalen, um Nutzer per Fingerprinting wiederzuerkennen; Apple erlaubt kein Fingerprinting, weder mit noch ohne Abfrage.
  • Sag es in deiner Datenschutzerklärung und deinen AGB: „Diese Lizenz kann auf bis zu zwei Geräten genutzt werden; dafür speichern wir eine Gerätekennung.“
  • Behandle den Wertespeicher wie eine Einstellungsdatei der App: gut für Einstellungen und widerrufbare Tokens, falsch für Passwörter oder Zahlungsdaten.

Häufig gestellte Fragen

Warum nicht einfach Cookies und localStorage nutzen?

Nutze sie zuerst; in der App bleiben sie so erhalten wie in einem Browser. Der native Wertespeicher ist das Backup für alles, was das Leeren des Caches überstehen muss, etwa ein widerrufbares Geräte-Token, der Onboarding-Status oder die Sprachwahl, und er steht beim Start zur Verfügung, sogar offline.

Ist die WebViewGold-UUID dasselbe wie die Werbe-ID?

Nein. Sie ist eine nicht personenbezogene Gerätekennung für deine eigene App-Logik, nicht die IDFA oder die Android-Werbe-ID, und das Auslesen löst keine ATT-Abfrage aus. Würdest du sie nutzen, um Nutzer über Apps anderer Unternehmen hinweg zu verfolgen, oder sie an Werbenetzwerke weitergeben, wäre das Tracking, und die ATT-Regeln würden gelten.

Werden gespeicherte Werte auf die anderen Geräte des Nutzers synchronisiert?

Nein. Die Werte gelten pro Installation und pro Gerät. Alles, was dem Nutzer folgen soll (Profil, Einstellungen, Käufe), gehört in dein Backend; der Gerätespeicher beschleunigt nur den Start und hält ein Gerät eingeloggt.

Was passiert nach einer Neuinstallation oder auf einem neuen Smartphone?

Gespeicherte Werte sind nach einer Deinstallation weg, und du solltest auch nicht davon ausgehen, dass die UUID gleich bleibt. Lass Nutzer sich neu anmelden, registriere das Gerät neu und gib alte Geräte in Supabase oder Lovable Cloud (Postgres, Storage, Edge Functions) nach einer Zeit der Inaktivität oder über einen Bildschirm „Geräte verwalten“ frei.

Kann ich das im Browser oder in einer Vorschau testen?

Nur den Fallback. Die Schemes funktionieren in der WebViewGold-App, nicht in einem Desktop-Browser oder einer Lovable-Vorschau. Erkenne den eigenen User Agent, nutze im Browser den localStorage-Fallback und teste den echten Ablauf auf einem Smartphone mit einem Build der App.

Drei Wege, deine App in die Stores zu bringen

Gleiches Ergebnis, unterschiedlich viel Arbeit auf deiner Seite. Alle drei kommen mit Genehmigungsgarantie und 24/7 Support von echten Menschen.

Selbst machen

$109 pro Plattform, einmalig

Die WebViewGold-Lizenz: ein fertiges Xcode- oder Android-Studio-Projekt. URL einfügen, Name und Icon setzen, Features einschalten, bauen und einreichen. Kostenlose Updates für immer.

Pakete auf der Hauptseite ansehen

Full Service

$698 pro Plattform $798

Schick uns deine URL und dein Icon. Unser Team konfiguriert, baut und liefert deine App innerhalb von 72 Stunden, White-Label, inklusive Quellprojekten. Beide Plattformen für $1,158.

Full-Service-Details Powered by WeSetupYourWebViewApp

Winter-Sale-Preise gültig bis 31. Dezember 2026.

Bereit, deine Lovable-App zu veröffentlichen?

App Store & Google Play Genehmigungsgarantie – oder Geld zurück innerhalb von 14 Tagen

Lieber abgeben? Full Service: Wir konfigurieren, bauen und liefern innerhalb von 72 Stunden, ab $698 pro Plattform. Fragen? Chatte mit uns – 24/7.

Erstattungen erfolgen zu den in unseren FAQ genannten Bedingungen: eine nicht inhaltsbedingte Ablehnung durch Apple und/oder Google, geltend gemacht innerhalb von 14 Tagen nach dem Kauf.