É possível iniciar qualquer aplicativo arbitrário do iPhone a partir de outro aplicativo ?, Por exemplo, no meu aplicativo, se eu quiser que o usuário aperte um botão e inicie diretamente no aplicativo Telefone (feche o aplicativo atual, abra o aplicativo Telefone) .
isso seria possível? Sei que isso pode ser feito para fazer chamadas telefônicas com o link tel URL, mas, em vez disso, quero que o aplicativo Telefone inicie sem discar nenhum número específico.
fonte
Descobri que é fácil escrever um aplicativo que possa abrir outro aplicativo.
Vamos supor que temos dois aplicativos chamados
FirstApp
eSecondApp
. Quando abrimos o FirstApp, queremos poder abrir o SecondApp clicando em um botão. A solução para fazer isso é:No SecondApp
Vá para o arquivo plist do SecondApp e você precisará adicionar um esquema de URL com uma string iOSDevTips (é claro que você pode escrever outra string.de sua escolha).
2) No FirstApp
Crie um botão com a ação abaixo:
É isso aí. Agora, quando você pode clicar no botão no FirstApp, ele deve abrir o SecondApp.
fonte
Info.plist
doFirstApp
. Em seguida, adicione os esquemas que seu aplicativo deseja abrir; nesse caso,Item 0
seria #iOSDevTips
LSApplicationQueriesSchemes
ao seu Info.plist para poder abrir o SecondApp.A resposta lee está absolutamente correta para iOS antes da 8.
No iOS 9 ou superior, você deve colocar na lista branca todos os esquemas de URL que seu aplicativo deseja consultar no Info.plist sob a chave LSApplicationQueriesSchemes (uma matriz de cadeias):
fonte
Na Swift
Apenas no caso de alguém estar procurando uma cópia e colagem rápida do Swift.
fonte
Para permitir que você abra seu aplicativo de outro, você precisará fazer alterações nos dois aplicativos. Aqui estão as etapas para usar o Swift 3 com iOS 10 atualização do :
1. Registre seu aplicativo que você deseja abrir
Atualize o
Info.plist
, definindo o esquema de URL personalizado e exclusivo do seu aplicativo.Observe que o nome do seu esquema deve ser exclusivo; caso contrário, se você tiver outro aplicativo com o mesmo nome de esquema de URL instalado no dispositivo, isso determinará o tempo de execução de qual deles será aberto.
2. Inclua o esquema de URL anterior em seu aplicativo principal
Você precisará especificar o esquema de URL que deseja que o aplicativo possa usar com o
canOpenURL:
método daUIApplication
classe. Portanto, abra o aplicativo principalInfo.plist
e adicione o esquema de URL do outro aplicativoLSApplicationQueriesSchemes
. (Introduzido no iOS 9.0)3. Implemente a ação que abre seu aplicativo
Agora tudo está configurado, então você deve escrever seu código no aplicativo principal que abre o outro aplicativo. Isso deve ser algo como isto:
Observe que essas alterações requerem uma nova versão se você deseja que o aplicativo existente (instalado na AppStore) seja aberto. Se você deseja abrir um aplicativo que você já lançou na Apple AppStore, precisará primeiro carregar uma nova versão que inclua o registro do seu esquema de URL.
fonte
Aqui está um bom tutorial para iniciar o aplicativo de outro aplicativo:
SDK do iOS: Trabalhando com esquemas de URL
E não é possível iniciar um aplicativo arbitrário, mas os aplicativos nativos que registraram os esquemas de URL .
fonte
Para conseguir isso, precisamos adicionar algumas linhas de código nos aplicativos.
Aplicativo A: que você deseja abrir em outro aplicativo. (Fonte)
Aplicativo B : no aplicativo B, você deseja abrir o aplicativo A (destino)
Código para o aplicativo A
Adicione algumas tags ao Plist do aplicativo A Open Plist do aplicativo A e passado abaixo de XML
Delegado no aplicativo A - receba retorno de chamada aqui
Agora chegando ao código do aplicativo B -
Se você deseja apenas abrir o App A sem nenhum parâmetro de entrada
Se você deseja passar o parâmetro do aplicativo B para o aplicativo A , use o código abaixo
Nota: Você também pode abrir o aplicativo apenas digitando testApp.linking: //? no navegador safari
fonte
Experimente o código a seguir para ajudá-lo a iniciar um aplicativo a partir do seu aplicativo
Nota: Substitua o nome fantacy pelo nome real do aplicativo
fonte
Você pode iniciar apenas aplicativos que registraram um esquema de URL. Assim como você abre o aplicativo SMS usando sms :, você poderá abrir o aplicativo usando o esquema de URL.
Há um exemplo muito bom disponível nos documentos chamados LaunchMe que demonstra isso.
Código de exemplo do LaunchMe a partir de 6 de novembro de 2017.
fonte
Não, não é. Além dos manipuladores de URL documentados, não há como se comunicar com / iniciar outro aplicativo.
fonte
Eu também tentei isso há um tempo atrás ( Inicie o aplicativo para iPhone com identificador ), mas definitivamente não existe uma maneira DOCUMENTADA de fazer isso. :)
fonte
No Swift 4.1 e no Xcode 9.4.1
Eu tenho dois aplicativos 1) PageViewControllerExample e 2) DelegateExample. Agora eu quero abrir o aplicativo DelegateExample com o aplicativo PageViewControllerExample. Quando clico no botão Abrir no PageViewControllerExample, o aplicativo DelegateExample será aberto.
Para isso, precisamos fazer algumas alterações nos arquivos .plist para os dois aplicativos.
Passo 1
No aplicativo DelegateExample, abra o arquivo .plist e adicione Tipos e esquemas de URL. Aqui precisamos adicionar o nome necessário, como "myapp".
Passo 2
No aplicativo PageViewControllerExample, abra o arquivo .plist e adicione este código
Agora podemos abrir o aplicativo DelegateExample quando clicamos no botão PageViewControllerExample.
fonte
Uma observação lateral sobre este tópico ...
Há um limite de 50 solicitações para protocolos que não estão registrados.
Nesta discussão, a Apple menciona que, para uma versão específica de um aplicativo, você pode consultar apenas
canOpenUrl
um número limitado de vezes e falhará após 50 chamadas para esquemas não declarados . Também vi que, se o protocolo for adicionado depois de entrar nesse estado de falha, ele ainda falhará.Esteja ciente disso, pode ser útil para alguém.
fonte
Swift 3 rápida e cole a versão da @ villy393 resposta para:
fonte