Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

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?

like image 688
PHPLover Avatar asked Mar 06 '15 04:03

PHPLover


People also ask

How do I make a deep link for IOS app?

All you have to do is tell the app which scheme would you like to use. For this just Open Xcode, got to Project Settings -> Info, and add inside 'The URL Types” section a new URL scheme. Add something of the sort of com. myApp and that's it.


2 Answers

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.

like image 57
Thorsten Avatar answered Oct 28 '22 08:10

Thorsten


Using javascript, you can have a landing page to tunnel the users:

You can redirect the user to an app scheme using the following:

 document.location="myApp://myUrl";

If the browser does not find the uri scheme, you can use a setTimeout to redirect the user to your webpage

setTimeout(function() {
   document.location="/path/inside/website.html";
}, 100);

Another good solution would be to test the existence of the url schema using an iframe on a small test file, and redirect the current page if the iframe can be loaded

<iframe id="ifrm" src="" style="display:none"></iframe>
<script>
window.frames['ifrm'].onload = function() {
   document.location="myApp://myUrl";
};
window.frames['ifrm'].src = "myApp://myUrl/ok.txt";
</script>
like image 29
Adam Avatar answered Oct 28 '22 07:10

Adam