Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS Web App: Showing content only if the application is standalone

If a user visits my websites example, from Safari Mobile how could I place there a blank page that says "Add To Homescreen."? Once added it would show different content.

like image 835
Ruslan Grebeniouk Avatar asked Nov 11 '11 07:11

Ruslan Grebeniouk


1 Answers

You'll want to check two things. First, is it running on an iOS device? Second, is window.navigator.standalone == true?

window.navigator.standalone is primarily used by Webkit browsers to indicate the app is in fullscreen (or standalone) mode. Plenty of devices (like phones running Android), support this property, but don't have the option to 'Add to Homescreen' like iOS devices do, so you need to check both.

Demo: jsFiddle

Javascript:

function isIOS() {
    var userAgent = window.navigator.userAgent.toLowerCase();
    return /iphone|ipad|ipod/.test( userAgent );
};

function isStandalone() {
    return ( isIOS() && window.navigator.standalone );
};

window.onload = function () {
    if( isStandalone() || !isIOS() ) { //either ios+standalone or not ios
        //start app
    } else {
        //display add to homescreen page
    };
};
like image 171
ThinkingStiff Avatar answered Oct 14 '22 18:10

ThinkingStiff