Datenaustausch zwischen zwei iPhone-Apps
-
21-09-2019 - |
Frage
Ich möchte Teilen Sie Textdaten zwischen zwei iPhone-Apps.Wie kann ich für diesen Zweck Kleisterkarton verwenden?Kann mir jemand mit einem Beispielcode helfen?Dank im Voraus.Schlagen Sie mir vor, ob es bessere Möglichkeiten als Pappe gibt, um meine Aufgabe zu erledigen.
Lösung
Wenn Sie nur IPC verwenden möchten, lassen Sie beide Apps ein URL -Schema erkennen. Dann ruf an
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"theOtherApp://dataToShare"]];
zu senden und zu verwenden -application:handleOpenURL:
bekommen.
Verwenden Sie zum Teilen von Saiten über das Pasteboard
UIPasteboard* board = [UIPasteboard generalPasteboard];
board.string = @"Some string to share";
zu speichern und zu verwenden board.string
Als Getter, um die Zeichenfolge zu teilen, um sie zu teilen. Wenn der Benutzer jedoch etwas zwischen Ihren gemeinsam genutzten Daten kopiert, gehen Sie verloren.
Alternativ können Sie Sachen über:
- Adressbuch. Erstellen Sie einen Dummy -Kontakt und verwenden Sie ihn zum Teilen.
- Schlüsselbund. Machen Sie einen gemeinsam genutzten Schlüsselbundstück. 3.x nur.
- Lesen/Schreiben aus gemeinsam genutzten Ordnern.
/var/mobile/Library/AddressBook
undKeyboard
undPreferences
Kann auch dann zugegriffen werden, wenn Ihre App sandboxiert ist. Dies kann jedoch gegen die SDK -Regeln verstoßen.
Andere Tipps
Du könntest benutzen benutzerdefinierte URL-Schemata um zwischen Ihren Apps zu kommunizieren.
Ich würde die Zwischenablage des Benutzers nicht verschmutzen, es sei denn, er möchte ausdrücklich etwas in die Zwischenablage kopieren – stellen Sie sich die Frustration vor, einen Textausschnitt in der Zwischenablage zu speichern und ihn dann von einer App überschreiben zu lassen, nur um Daten an eine andere App zu senden ...Keine gute Benutzererfahrung.
Aktualisieren:
Als @ohhorob kommentiert, es ist möglich, benutzerdefinierte Pasteboards zu erstellen.Wenn Sie Daten über das Pasteboard teilen möchten, stellen Sie sicher, dass Sie Ihr eigenes (persistentes) Anwendungs-Pasteboard erstellen und dieses anstelle des Haupt-Pasteboards verwenden.Sehen Hier für mehr Informationen.