Open app from SMS with my url scheme as a link

emenegro picture emenegro · Apr 11, 2014 · Viewed 16.3k times · Source

I declared an url scheme in my app, smstest so in Safari I can write in the search bar smstest:my-testor smstest://my-test and my app is open.

I'm trying to achieve the same from a SMS text so the Messages app would format smstest:my-test or smstest://my-test as a link and the user could tap it and my app being called. But the text is not formatted as a link.

Is it possible or the only solution to open an app from a SMS is to point to an Internet page with a script?

Thank you.

EDIT: funny thing, I have installed IMO Messenger and I receive a SMS with a code as an URL scheme, and that is parsed by Messages app as a link. Why does not happens with my app? I tried with several messages, with spaces before and after the url and nothing happens.

Answer

Vlad Papko picture Vlad Papko · Apr 22, 2014

In general there is standard way to open application from Messages app by using url scheme:

  1. Add url scheme to info.plist file: my-scheme.
  2. Install application to the target iPhone.
  3. Send SMS with text like this: "my-scheme://it-is-my-scheme.

And everything works well. But it is possible one interesting case when it doesn't work and you think that source code is wrong. But it isn't so. Let's try to investigate this case:

  1. Before adding url scheme and installing application send SMS. As it expected message will be displayed as plain text:
    First SMS

  2. Now lets add url scheme to info.plist:
    Info.plist

  3. Finally install application and send/receive the same SMS:
    Second SMS

As you see last message is displayed like link and if I tap on it then iOS opens my application. But the first message is still displayed as plain text and it isn't tappable. It seems that the logic of Messages app is implemented in such manner.

Now lets delete application from iPhone and send the same SMS one more time:
Third SMS
Now it again displayed as plain text but the second message - as link. And if I tap on it iOS does nothing and leaves Messages app opened.

Conclusion: Be sure that you send/receive SMS after installing application that supports your scheme. Only in this case it will be displayed as link and user can open your application by tapping on it.

Notice: I also catch one case when at the beginning application was installed without supported url schemes and then when I add this support message has been displayed as plain text but not as link. I can't reproduce it. But if above steps won't help to resolve your issue try:

  1. Remove application from iPhone;
  2. Change url scheme (or even change both: url scheme and bundle id as a last resort);
  3. Install it again;
  4. Send SMS with new url scheme.