Abrir uma aplicação a partir de SMS com o meu esquema de url como uma ligação

declarei um esquema de url na minha aplicação, {[[0]} por isso, no Safari, Posso escrever na barra de pesquisa smstest:my-testou smstest://my-test e a minha aplicação está aberta.

estou a tentar alcançar o mesmo a partir de um texto SMS para que a aplicação de mensagens formatasse smstest:my-test ou smstest://my-test como um link e o utilizador pudesse tocar nele e a minha aplicação a ser chamada. Mas o texto não é formatado como um link.

é possível ou a única solução para abrir um aplicativo a partir de um SMS é apontar para uma página de Internet com um script?

Obrigado. você.

editar: coisa engraçada, eu instalei o mensageiro IMO e eu recebo um SMS com um código como um esquema de URL, e que é processado por App Mensagens como um link. Porque não acontece com a minha aplicação? Tentei com várias mensagens, com espaços antes e depois da url e nada acontece.

Author: emenegro, 2014-04-11

2 answers

Em geral, existe uma forma normal de abrir a aplicação a partir da aplicação de mensagens, usando o esquema url:

  1. Adicionar um esquema de url ao info.ficheiro plist: my-scheme.
  2. Instalar a aplicação no iPhone alvo.
  3. Enviar SMS com texto como este: "o meu esquema://é-o-meu-esquema.
E tudo funciona bem. Mas é possível um caso interessante quando não funciona e você acha que o código fonte está errado. Mas não é assim. Vamos tentar investigar isto. caso:
  1. Antes de adicionar esquema de url e instalar aplicação enviar SMS. Como esperado, a mensagem será apresentada como texto simples:
    First SMS

  2. Agora vamos adicionar um esquema de url ao info.plist:
    Info.plist

  3. Finalmente, instalar o aplicativo e enviar/receber o mesmo SMS:
    Second SMS

Como você vê, a última mensagem é mostrada como link e se eu tocar nele, então iOS abre a minha aplicação. Mas a primeira mensagem ainda é mostrada como texto simples e não pode ser tapado. Parece que a aplicação lógica das mensagens é implementada dessa forma.

Agora vamos apagar a aplicação do iPhone e enviar o mesmo SMS mais uma vez:
Third SMS
Agora ele novamente exibido como texto simples, mas a segunda mensagem - como link. E se lhe tocar, o iOS não faz nada e deixa a aplicação de mensagens aberta.

Conclusão: certifique-se de que envia/recebe SMS após a instalação da aplicação que suporta o seu esquema. Só neste caso. ele será exibido como link e o usuário pode abrir a sua aplicação, tocando nele.

Aviso: também apanho um caso quando no início da aplicação foi instalada sem esquemas de url suportados e quando adiciono esta mensagem de suporte foi apresentada como texto simples, mas não como ligação. Não consigo reproduzi-lo. Mas se os passos acima não vão ajudar a resolver o seu problema tente:

  1. Remover a aplicação do iPhone;
  2. mudar o esquema do url (ou mesmo mudar ambos: esquema do url e o pacote id como último recurso);
  3. Instale-o de novo;
  4. Enviar SMS com um novo esquema de url.
 17
Author: Vlad Papko, 2014-04-22 09:21:32

Editar:

Acabei de tentar com uma aplicação a enviar o meu esquema url no corpo do sms e funcionou. Deve ter este formato smstest://my-test

O aplicativo tem que ser instalado e com o esquema url declarado na informação.plist quando você recebe o sms para trabalhar.

Adiciono a imagem de um SMS recebido com diferentes esquemas de url, todos eles reconhecidos pelo app de SMS do iPhone

SMS URL SCHEMES

Se ainda não funcionar, tenta implementá-los e fá-los regressar. YES

application: handleOpenURL: e application: openURL:sourceApplication: annotation:

- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url
{
    return YES;
}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    return YES;
}
Esta resposta antiga era para o redireccionamento JS que pediste nos comentários.

Uso isto para redireccionar da web para a aplicação com recurso para o url do itunes no caso de a aplicação não estar instalada

var now = new Date().valueOf();
setTimeout(function () {
    if (new Date().valueOf() - now > 100) return;
    window.location = "http://itunes.apple.com/yourappurl";
}, 25);
window.location = "smstest://my-test";
 4
Author: jcesarmobile, 2014-04-22 08:05:37