2012-03-02 12 views
10

Mam aplikację na iPhone'a, którą niektórzy z moich użytkowników uruchamiają na swoim iPadzie w trybie emulacji. Zastanawiamy się nad stworzeniem aplikacji zoptymalizowanej pod kątem iPada, która byłaby osobną aplikacją w App Store (więcej funkcji, inny punkt cenowy).Jak mogę przenieść dokument między dwiema aplikacjami na tym samym urządzeniu z systemem iOS?

Problem polega na tym, że jeśli użytkownik uruchamia aplikację na iPada, a następnie kupił wersję zoptymalizowaną pod kątem iPada, w jaki sposób może przenieść swoje dane z aplikacji tylko do iPhone'a i do nowej aplikacji na iPada?

Oto kilka alternatyw Mam uważane:

  • zalecany w innych SO pytania, bezpiecznym pęku kluczy. Problem polega na tym, że pozwala to tylko na przeniesienie małego kawałka danych. Nasi użytkownicy mają prawdopodobnie dziesiątki megabajtów danych. Rejestracja schematów URI (sugerowana również w innych pytaniach SO, wydaje się również być zaprojektowana tylko dla bardzo małych ilości danych)
  • Pozwól użytkownikowi przesłać dane z iPhone'a - tylko do usługi, takiej jak Dropbox lub box.net, a następnie z wersji na iPada, ponownie pobierz te dane. Zaletą jest to, że te usługi mają bardzo proste API; wadą jest to, że użytkownik może potrzebować utworzyć dodatkowe konto i/lub pobrać inną aplikację tylko po to, aby przenieść dane.
  • Utwórz dokument iCloud. Nie jest wymagana rejestracja, ale konfiguracja magazynu iCloud to, delikatnie mówiąc, nietrywialny.

Czy są jakieś inne opcje przesyłania dziesiątków megabajtów danych między dwiema aplikacjami na tym samym urządzeniu.

+0

Jaki jest twój dowód na to, że schematy URI są tylko dla niewielkich ilości danych? Czy istnieje ograniczenie długości adresów URL przekazywanych z aplikacji do aplikacji? W przeciwnym razie możesz po prostu oprzeć 64 kodowanie danych i umieścić tam, gdzie chcesz. Nie sądzę, że w API wbudowany jest koder bazowy 64 (choć są one naprawdę łatwe do napisania), ale istnieje niejawny dekoder, ponieważ NSURL obsługuje 'dane:' URL i 'NSData' może ładować z nich. – Tommy

Odpowiedz

13

Możesz użyć UIDocumentInteractionController, aby umożliwić użytkownikowi otwieranie dokumentu w dowolnej aplikacji na urządzeniu, które zarejestrowało obsługę danego typu dokumentu.

To nadal spowoduje utworzenie kopii dokumentu w piaskownicy aplikacji na iPada. Nie da się tego obejść.

+0

dzięki. Czy masz więcej szczegółów na temat tego, jak to działałoby? – Bill

+0

Jakich informacji potrzebujesz, których nie ma w przewodniku, który łączyłem? –

+0

Na przykład: w jaki sposób nowa aplikacja na iPada otrzymuje ścieżkę lub uchwyt do dokumentu w drugiej aplikacji? Opis w przewodniku sugeruje, że możesz otwierać pliki tylko wtedy, gdy uruchamiana jest aplikacja z konkretnymi argumentami.Brzmi to jak obiecujący sposób (bez udziału zdalnego transferu, bez oddzielnych kont), ale nigdy nie słyszałem o używaniu UIDIC w ten sposób. – Bill

1

choć trochę wymagane jest więcej pracy, ale biorąc pod uwagę ilość przesyłanych danych jest stosunkowo niewielka, można skonfigurować serwer jako środku człowiek. Największą korzyścią jest to, że ludzie mogą przesyłać dane między iPhonem a iPadem, a nie tylko wewnątrz-iPada.

Może to być tak proste, jak przycisk "przenieś do iPada", który spowoduje wyświetlenie użytkownikowi tymczasowej nazwy użytkownika i hasła, a następnie przeniesie dane do bazy danych SQL. Następnie po stronie iPada wszystko, co musisz zrobić, to zsynchronizować dane, uwierzytelnić i pobrać. Baza danych może być wyczyszczona z danych starszych niż dziesięć dni, aby jej rozmiar nie wzrastał.

+0

Niestety, jak już wspomniałem, mówimy o dziesiątkach megabajtów danych. Przesłanie tego w górę i w dół zajęłoby zbyt dużo czasu, wykorzystałoby plany danych moich użytkowników i wymagałoby ode mnie zapłaty za chmurę w chmurze. Szukam sposobu na transfer danych bez opuszczania urządzenia. – Bill

+0

@Bill dziesiątki megabajtów nie zajmuje zbyt długo na wi-fi, a zapewnienie dobrej obsługi kosztuje pieniądze :) –

Powiązane problemy