2010-01-19 9 views
5

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

7

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 i Keyboard i Preferences mogą być dostępne, nawet jeśli aplikacja jest piaskownica. Może to jednak naruszać zasady SDK.
0

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.

+2

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

+0

@hobob: Ach, racja! Nie wiedziałem o tym. Dzięki! –

Powiązane problemy