2012-05-08 3 views
0

Je crée une application Web mobile (non native) et je souhaite utiliser la hauteur d'écran complète pour mon application. Le problème est que la barre d'adresse du navigateur prend beaucoup de place, me laissant avec environ 4/5 de l'ensemble de l'écran.Masquage de la barre d'adresse dans l'application Web mobile

J'ai fait mon application pour qu'il n'y ait jamais de défilement, le site correspond toujours à la hauteur de l'écran de l'utilisateur. Ce que je suis vraiment après, c'est ce que fait le site mobile facebook. Il défile vers le bas pour masquer la barre d'adresse.

Existe-t-il un moyen universel de le faire, aussi bien pour les appareils Android que pour Iphone, et dans différents navigateurs mobiles (différentes tailles de barre d'adresse)?

BTW: J'utilise Iscroll4 pour obtenir un pied de page fixe et un en-tête.

EDIT: C'est le code que j'ai fini avec. J'ai ajouté deux boutons pour permettre à l'utilisateur de choisir d'utiliser ou non le mode plein écran. Ce code fonctionne en combinaison avec Iscroll4 et Jquery.

<script type="text/javascript"> 
$(document).ready(function() { 
    var fullscreen = false; 

    if(fullscreen==false) 
    { 
     window.removeEventListener("orientationchange", function(){ hideAddressBar(); }); 
     window.addEventListener("orientationchange", function(){ showAddressBar(); }); 
    } 
    else 
    { 
     window.removeEventListener("orientationchange", function(){ showAddressBar(); }); 
     window.addEventListener("orientationchange", function(){ hideAddressBar(); }); 
    } 

    $('#fullscreen').click(function(){ 
     hideAddressBar(); 
     fullscreen = true; 
    }); 
    $('#normalscreen').click(function(){ 
     showAddressBar(); 
     fullscreen = false; 
    }); 

}); 
function hideAddressBar() 
{ 
    document.body.style.height = (window.outerHeight + 20) + 'px'; 
    window.scrollTo(0, 1); 
} 
function showAddressBar() 
{ 
    document.body.style.height = (window.outerHeight - 20) + 'px'; 
    window.scrollTo(0, 0); 
} 

Répondre

2

Vous pouvez trouver un bon article sur la façon dont cela est réalisé ici http://mobile.tutsplus.com/tutorials/mobile-web-apps/remove-address-bar/

échantillon script

function hideAddressBar() 
{ 
    if(!window.location.hash) 
    { 
     if(document.height < window.outerHeight) 
     { 
      document.body.style.height = (window.outerHeight + 50) + 'px'; 
     } 

     setTimeout(function(){ window.scrollTo(0, 1); }, 50); 
    } 
} 

window.addEventListener("load", function(){ if(!window.pageYOffset){ hideAddressBar(); } }); 
window.addEventListener("orientationchange", hideAddressBar); 
1

La façon dont je fais ce qui est habituellement:

window.addEventListener("load",function() { 
    setTimeout(function(){ 
    window.scrollTo(0, 1); 
    }, 0); 
}); 

Mais il ne fonctionnera que si la page est assez long pour faire défiler vers le bas un peu.

+0

Oui, j'ai trouvé cette solution en ligne aussi, elle ne correspond tout simplement pas à mes besoins, puisque mon application n'aura aucun défilement. –

+0

En fait, j'ai trouvé ce post plutôt utile, alors ignorez mon précédent commentaire :) –

2

Le "défiler vers le bas" javascript astuce devrait fonctionner sur iPhone et Android:

http://mobile.tutsplus.com/tutorials/mobile-web-apps/remove-address-bar/

ne suis pas sûr d'autres navigateurs mobiles quoique désolé. Parlez-vous de Blackberry, Windows Phone, etc. ou des téléphones plus basiques?

+0

Sur Android (et Iphone?), Vous pouvez télécharger n'importe quelle application de navigateur que vous voulez, et l'utiliser par défaut. Et tous ces navigateurs ont des hauteurs différentes pour leurs barres d'adresse. Je cible principalement les utilisateurs d'Android et d'Iphone, pas tellement BlackBerry ou Windows Phone. Superbe lien btw! –

0

Essayez ceci,

pour Android:

if(navigator.userAgent.match(/Android/i)){ 
    window.scrollTo(0,1); 
} 

pour iPhone:

<meta name="apple-mobile-web-app-capable" content="yes" /> 
+0

N'est-ce pas le seul iPhone disponible pour les applications Iphone natives? –

+0

Absolument non, c'est une balise META. Jetez un oeil à cela http://www.luscarpa.com/development/make-your-website-an-iphone-web-application/ –

+0

Ok, je vais essayer. –

Questions connexes