2010-03-10 7 views
3

J'utilise jQTouch pour développer une version d'un site web optimisé pour un safari sur l'iphone. La démo jQTouch montre utilement comment afficher un message "installer ceci" pour les utilisateurs n'utilisant pas le mode plein écran et le cacher pour ceux qui le sont. En mode plein écran, le corps devrait avoir la classe "fullscreen". Ainsi, vous pouvez cacher le message « installer ce » pour les personnes qui ont déjà ajouté votre application à leur page d'accueil en ajoutant cette règle css à votre feuille de style:Comment demander le mode plein écran dans une application jQTouch?

body.fullscreen #home .info { 
    display: none; 
} 

Ce que je voudrais faire est exigent utilisateurs pour utiliser l'application en mode plein écran uniquement. Lorsqu'ils sont affichés depuis le navigateur habituel, ils ne doivent voir qu'un message leur demandant d'installer l'application. Ce message devrait bien sûr être caché autrement.

Cela devrait être vraiment, vraiment facile, donc je dois juste manquer quelque chose d'évident.

Je pensais qu'une façon de faire serait de simplement tester la classe "fullscreen" sur le corps: si ce n'est pas le cas, utilisez goTo pour obtenir un autre div, ou masquer les autres divs, ou quelque chose comme ça.

Étrangement, cependant, cela ne fonctionne pas. Comme test, j'ai toujours le message "info" d'origine, comme dans la démo jQTouch, et il n'apparaît pas quand je lance en mode plein écran. Donc le corps doit avoir la classe plein écran. Et pourtant, je ne peux trouver aucune autre trace: quand je mets cette alerte pour tester des choses après que le document a chargé, je ne reçois rien lors du lancement en mode plein écran:

alert($("body").attr("class")); 

J'ai aussi pensé que je pourrais tester mode plein écran en vérifiant la valeur du booléen fullScreen. Mais cela ne semble pas fonctionner non plus. Qu'est-ce que je rate? Quelle est la meilleure façon de procéder?

Répondre

2

Eh bien, je ne pouvais pas comprendre pourquoi la méthode standard ne fonctionnait pas, mais quelqu'un sur le groupe Google jQTouch suggéré ce qui fonctionne:

if (window.navigator.standalone) { 
    alert ('Thanks for launching this app your home screen') 
} else { 

    alert('Add this app to your home screen for the best experience') 

} 
Questions connexes