How to redirect the user to a mobile app or a website on click of a hyperlink sent in an email? Should it need to be handled on server-side using PHP?

PHPLover picture PHPLover · Mar 6, 2015 · Viewed 21.3k times · Source

I've a website which is already developed using PHPFox and it's working fine. Now, iOS development team has created a mobile app in iOS for the same functionality as of the website. User can do all the operations using this app which he/she can do on a website. In other words we can say this app is a replica of the existing website. The only restriction in development of app is that the flow and functionality should be same as of the website. There should not be any functionality discrepancy between the app and the existing running website.

For this app, they are using the same functions present into the website's PHPFox code base. I'm making the iOS team these functions available by means of REST APIs developed using Slim framework. In these APIs I'm accepting the request in JSON format from the app, decode it, call the required function from PHPFox code base by passing the required request parameters, get the response from the function, convert it into JSON format and send it back to the mobile app.

Now, let's focus on the issue I'm facing.

In both the scenarios(website and app) for some functionalities like new user account activation link, resend account activation link, reset existing user's password if he/she forgets password, etc. an email is sent to the concerned user. This email contains the relevant hyperlink. When user clicks on this hyperlink sent into the email, it always redirects to the respective web page on website.

When that specific user clicks on the hyperlink present into the received mail it gets redirected to the website only. It doesn't redirect to the app.

My requirement is if user has opened the mail on to the device which also has installed/runs the mobile app and clicks on a hyperlink in a mail he/she should redirect to the specific page of mobile app not the website.

And suppose if user has opened a mail on a computer, laptop or a device where the app is not installed he/she should redirect to the website.

How should I achieve this?

One more thing to be noted here is the redirection path(value of the href attribute) of the link to be send into the mail is generated into the website's PHPFox code only. So, if I need to make change into the logic to achieve this new functionality how should I do without changing the system flow on app and website? Or should I write a new function for it in order to not change the existing code of PHPFox?

I researched about the solution to this issue. I came to know about Bitly that could do this job but couldn't understand how.

This requirement is raised by iOS team to me (PHP team) on the basis of this hyperlink article they have found on the internet. Please refer this also.

So, my straight-forward question is since this article is about iOS coding and it nothing has to do with server-side coding (i.e. PHP) should I have to do anything on server-side using PHP to achieve this functionality?

Answer

Thorsten picture Thorsten · Mar 7, 2015

You (or your iOS-team) need to add an URL scheme to the iOS app to make deep linking possible. Then you need a website which checks if this URL scheme (and therefore the iOS app) is available on the device. If yes, then you forward to the app, if no you forward to the website. Then you embed the link to the check website in your emails.

There are services, which can help you with the whole setup. One I know is https://branch.io but I'm sure there are more out there.

Edit:

Deep Linking in iOS: http://blog.originate.com/blog/2014/04/22/deeplinking-in-ios/

From that link: "To enable deep linking, go to the Info tab in the Xcode project. In the URL Types section, click on the + button, and then add an identifier and a URL scheme. Ensure that the identifier and URL scheme you select are unique. Take note of the URL scheme you enter, as this is how iOS knows to open a link in your app."

There are more steps to follow, so make sure to read the whole thing.

Create a link for iOS and Web:

Create a link that either launches iOS app, or redirects to app store

and

Is it possible to register a http+domain-based URL Scheme for iPhone apps, like YouTube and Maps?

instead of redirecting to the AppStore, you'd like to redirect to your webpage.