Freunde finden, die die App schon nutzen
Gleich normalisierte Telefonnummern mit den Accounts in deinem Backend ab und zeig „3 deiner Kontakte sind schon hier“ statt einer leeren Freundesliste.
Lovable + Kontakte
Freunde-finden-Bildschirme, Gruppeneinladungen und Apps zum Aufteilen von Rechnungen wollen oft ans Adressbuch. In einer WebViewGold-App fragt deine Lovable-App mit requestcontactpermission:// nach der Berechtigung und bekommt nach readcontacts:// Namen und Telefonnummern als JSON in der Variable contacts. Der Code ist in Minuten geschrieben; ob die App das Review besteht, entscheidet, wie du die Daten nutzt.
Ab $109 einmalig pro Plattform, oder unser Team erledigt alles ab $698.
Gleich normalisierte Telefonnummern mit den Accounts in deinem Backend ab und zeig „3 deiner Kontakte sind schon hier“ statt einer leeren Freundesliste.
Der Nutzer wählt einen Kontakt, die App bereitet eine persönliche Einladung vor und öffnet das Share Sheet. Keine Masseneinladungen, keine Überraschungen für den Empfänger.
CRM-, Buchungs- und Team-Apps können einen neuen Datensatz aus einem gewählten Kontakt vorausfüllen, statt Nutzer Namen und Nummern abtippen zu lassen.
Ein einfacher Einladungslink über das native Share Sheet (shareapp://) braucht überhaupt keine Berechtigung und ist der leichtere Weg durchs Review. Frag nur nach Kontakten, wenn Abgleich oder Auswahl echten Mehrwert bringen.
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.
Baue eine Funktion „Freunde finden“ ein, die im WebViewGold-App-Wrapper das Adressbuch des Smartphones nutzt. 1) Füge einen Erklärbildschirm hinzu (wir vergleichen die Telefonnummern deiner Kontakte einmalig und speichern keine Nummern von Personen, die nicht in der App sind) mit einem Weiter-Button, der nur dann zu requestcontactpermission:// navigiert, wenn navigator.userAgent WebViewGold enthält. 2) Füge einen Button „Meine Kontakte anzeigen“ hinzu, der window.contacts = undefined setzt, zu readcontacts:// navigiert, window.contacts bis zu 5 Sekunden lang alle 100 ms abfragt und null als verweigerte Berechtigung behandelt, mit einem Button, der settingsapp:// öffnet. 3) Normalisiere Nummern auf E.164 und ruf eine Supabase Edge Function match-contacts auf, die nur gefundene User-IDs und Anzeigenamen zurückgibt, ohne die Eingabe zu speichern. 4) Zeig Treffer mit Hinzufügen-Buttons und die übrigen Kontakte als durchsuchbare Liste ohne Vorauswahl und ohne „Alle auswählen“. 5) Ein Einladen-Button pro Kontakt öffnet shareapp://message?=TEXT&url=OUR_INVITE_LINK, wobei der Text vorher angezeigt wird. 6) Zeig im Browser nur den Einladungslink.

Mein iOS WebView wurde endlich genehmigt. Danke!!
Eine Stunde für den Code, etwas länger für die Datenschutztexte.
Android: Ergänze android.permission.READ_CONTACTS in der AndroidManifest.xml, wie es die WebViewGold-Doku verlangt. iOS: Die Nutzungsbeschreibung für Kontakte in der Info.plist muss den Grund nennen, zum Beispiel „um dir zu zeigen, welche deiner Kontakte die App schon nutzen“.
Zeig einen eigenen Bildschirm, der den Nutzen erklärt, mit einem Weiter-Button, und navigiere dann zu requestcontactpermission://. Frag nie beim ersten Start oder bevor der Nutzer das Feature erreicht.
Nach der Berechtigung navigierst du zu readcontacts://. WebViewGold füllt die globale Variable contacts mit einem Objekt aus Namen und Arrays von Telefonnummern; ohne Berechtigung ist sie null.
Zeig eine durchsuchbare Liste ohne Vorauswahl und ohne Button „Alle auswählen“, und zeig den genauen Einladungstext, bevor irgendetwas verschickt wird.
Für den Freunde-Abgleich normalisierst du die Nummern und schickst sie für einen einmaligen Vergleich an dein Backend; nicht gefundene Nummern speicherst du nicht. Für Einladungen schickst du gar nichts: Öffne das Share Sheet.
Zwei getrennte Fingertipps: einer für die Berechtigung, einer zum Laden der Liste. Die Variable contacts kommt asynchron an. Ein Freunde-Abgleich, falls du ihn brauchst, läuft serverseitig und nur für angemeldete Nutzer; in deinem Lovable-Projekt passiert das in Supabase oder Lovable Cloud (Postgres, Storage, Edge Functions).
var IN_APP = navigator.userAgent.indexOf("WebViewGold") !== -1; // dein eigener User-Agent-Token
function waitFor(name, timeoutMs, done) {
var start = Date.now();
(function check() {
if (typeof window[name] !== "undefined") { done(window[name]); }
else if (Date.now() - start < timeoutMs) { setTimeout(check, 100); }
else { done(undefined); }
})();
}
// Tipp 1: nach deinem eigenen Erklärbildschirm
function askForContacts() {
if (!IN_APP) { showInviteLink(); return; }
window.location.href = "requestcontactpermission://";
}
// Tipp 2: "Meine Kontakte anzeigen"
function loadContacts() {
window.contacts = undefined;
window.location.href = "readcontacts://";
waitFor("contacts", 5000, function (list) {
if (!list) { showPermissionHint(); return; } // null = keine Berechtigung
// Format: { "John Appleseed": ["888-555-5512", "888-555-1212"], ... }
var people = Object.keys(list).map(function (n) { return { name: n, phones: list[n] }; });
renderPicker(people); // nichts vorausgewählt, kein "Alle auswählen"
});
}
// Früher abgelehnt? Lass den Nutzer es in den Einstellungen ändern
function openAppSettings() { window.location.href = "settingsapp://"; }Ein JSON-Objekt mit den Kontaktnamen als Schlüsseln und jeweils einem Array von Telefonnummern, gespeichert in der globalen Variable contacts. Ohne Berechtigung ist die Variable null. E-Mail-Adressen, Postanschriften und Fotos sind nicht Teil des dokumentierten Formats.
Nicht für das Lesen an sich, aber oft für das Wie. Frag im Kontext mit einer klaren Nutzungsbeschreibung, lass Nutzer einzelne Personen auswählen, lade nie alle auf einmal ein und speichere das Adressbuch nicht auf deinem Server, außer das Feature braucht es und deine Datenschutzerklärung sagt es.
Oft nicht. Ein Share Sheet mit persönlichem Einladungslink erreicht WhatsApp, Nachrichten und E-Mail ganz ohne Berechtigung und ist im Review viel leichter zu erklären. Nutze den Kontaktzugriff, wenn du Freunde abgleichst oder Gruppen aus vorhandenen Kontakten bildest.
readcontacts:// lässt die Variable contacts dann auf null. Biete stattdessen den Einladungslink an, und wenn der Nutzer es sich später anders überlegt, öffne mit settingsapp:// die App-Einstellungen, damit er den Zugriff erlauben kann.
Gleiches Ergebnis, unterschiedlich viel Arbeit auf deiner Seite. Alle drei kommen mit Genehmigungsgarantie und 24/7 Support von echten Menschen.
$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$349 pro Lizenz, einmaliges Add-on
Kein Mac, kein Xcode, kein Android Studio: Du konfigurierst im Browser, wir bauen beide Apps in der Cloud und übergeben sie an App Store Connect und die Play Console.
So funktioniert der Cloud Builder Kostenlose Demo ausprobieren$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 byWinter-Sale-Preise gültig bis 31. Dezember 2026.
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.