chcę danych tekstowych akcji pomiędzy dwoma aplikacjami iphone. Jak mogę użyć płyty pasty do tego celu. Czy ktoś może mi pomóc z przykładowy kod. Z góry dziękuję. Zasugeruj mi, czy moje zadania mają lepsze sposoby niż wklejanie.akcja danych pomiędzy dwoma aplikacjami iphone
Odpowiedz
Jeśli chcesz po prostu użyć IPC, spraw, aby obie aplikacje rozpoznały jakiś schemat URL. Następnie zadzwoń pod numer
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"theOtherApp://dataToShare"]];
, aby wysłać i użyć -application:handleOpenURL:
, aby otrzymać.
Aby udostępnić ciągi poprzez kartonowe, użyj
UIPasteboard* board = [UIPasteboard generalPasteboard];
board.string = @"Some string to share";
zapisać i używać board.string
jako getter pobrać ciąg udostępnić. Ale jeśli użytkownik skopiuje coś pomiędzy Twoimi udostępnionymi danymi, zostanie utracony.
Alternatywnie, można udostępnić rzeczy poprzez:
- AddressBook. Utwórz fikcyjny kontakt i użyj go do udostępniania.
- Keychain. Utwórz udostępniony element pęku kluczy. Tylko 3.x.
- Odczyt/zapis z udostępnionych folderów.
/var/mobile/Library/AddressBook
iKeyboard
iPreferences
mogą być dostępne, nawet jeśli aplikacja jest piaskownica. Może to jednak naruszać zasady SDK.
Można użyć custom URL schemes komunikować między aplikacjami.
Nie zanieczyściłabym schowka użytkownika, chyba że specjalnie chciała skopiować coś do schowka - wyobraź sobie frustrację przechowywania fragmentu tekstu w schowku, a następnie zastąpienie go przez aplikację tylko w celu wysłania danych do innej aplikacji. .. Nie jest to dobre doświadczenie dla użytkownika.
Aktualizacja:
Jak @ohhorob skomentował, możliwe jest tworzenie niestandardowych pasteboards. Jeśli zamierzasz udostępniać dane za pośrednictwem obszaru roboczego, upewnij się, że utworzysz własny (trwały) obszar roboczy aplikacji i użyjesz go zamiast głównego stołu. Aby uzyskać więcej informacji, patrz here.
Steve, nie ma potrzeby korzystania z ogólną Tektura jak sugeruje KennyTM. Ściegi mogą mieć określoną stałą nazwę i być trwałe dla innych aplikacji. – ohhorob
@hobob: Ach, racja! Nie wiedziałem o tym. Dzięki! –