Gostaria de ter o iOS para abrir URLs do meu domínio (por exemplo, http://martijnthe.nl ) com meu aplicativo sempre que o aplicativo estiver instalado no telefone e com o Mobile Safari, caso não esteja.
Eu li que é possível criar um sufixo de protocolo exclusivo para isso e registrá-lo no Info.plist, mas o Mobile Safari apresentará um erro caso o aplicativo não esteja instalado.
O que seria uma solução alternativa?
Uma ideia:
1) Use http: // URLs que abrem em qualquer navegador da área de trabalho e prestam o serviço através do navegador
2) Verifique o User-Agent e, no caso do Mobile Safari, abra um myprotocol: // URL para (tentativa) para abrir o aplicativo para iPhone e abra o Mobile iTunes para baixar o aplicativo, caso a tentativa falhe
Não tem certeza se isso vai funcionar ... sugestões? Obrigado!
Respostas:
Eu acho que a maneira menos invasiva de fazer isso é a seguinte:
appInstalled
cookiewindow.location
comoyour-uri://
(ou faça o redirecionamento do lado do servidor)your-uri://
A outra opção com a qual eu joguei, mas achei um pouco desajeitada, foi fazer o seguinte em Javascript:
fonte
window.location="custom-uri://
for bem-sucedido, o tempo limite de fallback não será eliminado. Quando o usuário retorna ao navegador a partir do seu aplicativo, o timer ainda está lá e inicia o link da loja de aplicativos. Esta é uma má experiência do usuário.É bem possível fazer isso em JavaScript, desde que seu fallback seja outro applink. Com base na sugestão de Nathan :
Confira uma demonstração ao vivo aqui .
fonte
Para dispositivos iOS 6, existe uma opção: Promoção de aplicativos com banners de aplicativos inteligentes
fonte
Descobri que a resposta selecionada funciona para os aplicativos de navegador, mas eu estava tendo problemas com o código que trabalhava em aplicativos que não são de navegador que implementam a
UIWebView
.O problema para mim era que um usuário do aplicativo do Twitter clicaria em um link que os levaria ao meu site por meio de um
UIWebView
aplicativo do Twitter. Então, quando eles clicaram em um botão do meu site, o Twitter tenta ser chique e só completawindow.location
se o site estiver acessível. Então, o que acontece é umUIAlertView
pop-up dizendo que você tem certeza de que deseja continuar e, em seguida, redireciona imediatamente para a App Store sem um segundo pop-up.Minha solução envolve iframes. Isso evita a
UIAlertView
apresentação, permitindo uma experiência de usuário simples e elegante.jQuery
Javascript
EDITAR:
Adicione posição absoluta ao iframe para que, quando inserido, não haja um espaço aleatório de espaço em branco na parte inferior da página.
Também é importante observar que eu não encontrei a necessidade dessa abordagem com o Android. Usar
window.location.href
deve funcionar bem.fonte
No iOS9, a Apple finalmente introduziu a possibilidade de registrar seu aplicativo para lidar com certos
http://
URLs: Links universais .Uma explicação muito grosseira de como funciona:
http://
URLs para determinados domínios (URLs da Web) em seu aplicativo.http://
URLs para uma configuração, conforme explicado acima e abre o aplicativo correto automaticamente, se instalado; sem passar pelo Safari primeiro ...Esta é a maneira mais limpa de criar links diretos no iOS, infelizmente, funciona apenas no iOS9 e mais recente ...
fonte
CONSTRUINDO Novamente na resposta de Nathan e JB:
Como iniciar o aplicativo a partir do URL sem clique extra Se você preferir uma solução que não inclua a etapa intermediária de clicar em um link, pode ser usado o seguinte. Com esse javascript, consegui retornar um objeto Httpresponse do Django / Python que inicia com êxito um aplicativo se ele estiver instalado ou, alternativamente, inicia a loja de aplicativos no caso de um tempo limite. Observe que eu também precisava ajustar o período de tempo limite de 500 a 100 para que isso funcionasse em um iPhone 4S. Teste e ajuste para corrigir a situação.
fonte
document.webkitHidden
é detectar se seu aplicativo já foi chamado e a guia safari atual está em segundo plano, esse código é de www.baidu.comfonte
appurl
eweburl
poderia resolver seu problemaSe você adicionar um
iframe
em sua página da Web com osrc
esquema definido como personalizado para o seu aplicativo, o iOS será redirecionado automaticamente para esse local no aplicativo. Se o aplicativo não estiver instalado, nada acontecerá. Isso permite que você faça o link direto para o aplicativo, se estiver instalado, ou redirecione para a App Store, se não estiver instalado.Por exemplo, se você tiver o aplicativo do twitter instalado e navegue para uma página da Web que contenha a seguinte marcação, você será direcionado imediatamente para o aplicativo.
Aqui está um exemplo mais completo que redireciona para a App Store se o aplicativo não estiver instalado:
fonte
Heres uma solução.
Configurar uma sitiação booleana usando desfoque e foco
Vincule seu link com um manipulador de cliques jquery que chama algo assim.
se o aplicativo abrir, perderemos o foco na janela e o timer terminará. caso contrário, não obtemos nada e carregamos o URL usual do facebook.
fonte
Até onde eu sei, você não pode fazer com que todo o sistema operacional entenda um
http:
URL de + domínio. Você só pode registrar novos esquemas (eu usox-darkslide:
no meu aplicativo). Se o aplicativo estiver instalado, o Mobile Safari iniciará o aplicativo corretamente.No entanto, você precisaria lidar com o caso em que o aplicativo não está instalado com um "Ainda está aqui? Clique neste link para baixar o aplicativo do iTunes". na sua página da web.
fonte
http
URLsIsso me parece uma abordagem razoável, mas acho que você não conseguirá abrir o iTunes para dispositivos móveis como um segundo recurso. Eu acho que você terá que escolher um ou outro - redirecionar para o seu aplicativo ou para o iTunes.
ou seja, se você redirecionar para myprotocol: //, e o aplicativo não estiver no telefone, não terá uma segunda chance de redirecionar para o itunes.
Talvez você possa primeiro redirecionar para uma página de destino (otimizada para iphone) e dar ao usuário a opção de clicar no seu aplicativo ou no iTunes para obtê-lo, caso não o possua. Mas você dependerá do usuário para fazer a coisa certa. (Edit: embora você possa definir um cookie para que seja apenas uma primeira vez?)
fonte
Ao tentar resolver o problema do pop-up, descobri que a Apple tinha uma maneira de contornar essa preocupação.
De fato, quando você clica neste link , se você instalou o aplicativo, ele é redirecionado para ele; caso contrário, você será redirecionado para a página da web, sem nenhum pop-up.
fonte