Os dados compartilham entre dois aplicativos para iPhone
-
21-09-2019 - |
Pergunta
eu quero Compartilhe dados de texto entre dois aplicativos para iPhone. Como posso usar a placa de pasta para esse fim. Alguém pode me ajudar com um código de exemplo. Desde já, obrigado. Sugira -me se houver maneiras melhores do que a Pasteboard para realizar minha tarefa.
Solução
Se você simplesmente deseja usar o IPC, faça com que os dois aplicativos reconheçam algum esquema de URL. Então ligue
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"theOtherApp://dataToShare"]];
Para enviar e usar -application:handleOpenURL:
receber.
Para compartilhar strings através do Pasteboard, use
UIPasteboard* board = [UIPasteboard generalPasteboard];
board.string = @"Some string to share";
para salvar e usar board.string
como um getter para recuperar a string para compartilhar. Mas se o usuário copiar algo entre seus dados compartilhados será perdido.
Como alternativa, você pode compartilhar coisas via:
- Livro de endereços. Crie um contato fictício e use -o para compartilhar.
- Chaveiro. Faça um item de chaveiro compartilhado. 3.x apenas.
- Leia/escreva em pastas compartilhadas.
/var/mobile/Library/AddressBook
eKeyboard
ePreferences
pode ser acessado mesmo se o seu aplicativo estiver na caixa de areia. Isso pode violar as regras do SDK.
Outras dicas
Você poderia usar esquemas de URL personalizados para se comunicar entre seus aplicativos.
Eu não poluaria a área de transferência do usuário, a menos que eles quisessem copiar algo para a área de transferência - imagine a frustração de armazenar um trecho de texto na prancheta e depois ter algum aplicativo sobrescrever apenas para enviar dados para outro aplicativo ... não um boa experiência do usuário.
Atualizar:
Como @ohhorob Comentado, é possível criar pasteboards personalizados. Se você quiser compartilhar dados através do Pasteboard, crie seu próprio aplicativo (persistente) Pasteboard e use -o em vez do Pasteboard principal. Ver aqui Para maiores informações.