web-dev-qa-db-fra.com

barre d'état iOS qui chevauche le contenu

J'ai construit une application phonegap, cela fonctionne très bien sur Android et Windows. Mais pour iOS, je suis confronté à un problème car le contenu de la barre d'état et le contenu de la page sont mélangés, donc je ne parviens pas à appuyer sur le bouton retour fourni dans l'en-tête . Quelqu'un peut-il m'aider à ce sujet ..?

Ceci est mon fichier config.xml

   <?xml version="1.0" encoding="UTF-8"?>
<widget xmlns   = "http://www.w3.org/ns/widgets"
        xmlns:gap   = "http://phonegap.com/ns/1.0"

        id        = "io.example.com"
        version     = "1.0.2">
    <name>MyAPP</name>

    <description>

    </description>

    <author  email="[email protected]">
        Rakesh
    </author>

    <access Origin="*"/>


    <content src="index.html" />


    <preference name="target-device" value="universal" />   <!-- all: possible values handset, tablet, or universal -->
    <!-- <preference name="fullscreen" value="true" />  -->          <!-- all: hides the status bar at the top of the screen -->
    <preference name="webviewbounce" value="false" />        <!-- ios: control whether the screen 'bounces' when scrolled beyond the top -->
    <preference name="ios-statusbarstyle" value="black-opaque" />   <!-- ios: black-translucent will appear black because the PhoneGap webview doesn't go beneath the status bar -->
    <preference name="auto-hide-splash-screen"    value="true" />           <!-- ios: if set to false, the splash screen must be hidden using a JavaScript API -->
    <preference name="Android-minSdkVersion"      value="7" />              <!-- Android: MIN SDK version supported on the target device. MAX version is blank by default. -->
    <preference name="phonegap-version" value="3.7.0" />
    <icon src="icon.png" />

    <icon src="icon-57.png"            gap:platform="ios"        width="57" height="57" />
    <icon src="icon-72.png"            gap:platform="ios"        width="72" height="72" />
    <icon src="icon-57-2x.png"         gap:platform="ios"        width="114" height="114" />
    <icon src="icon-72-2x.png"         gap:platform="ios"        width="144" height="144" />
    <icon src="icon-120.png"           gap:platform="ios"        width="120" height="120" />
    <icon src="icon-76.png"            gap:platform="ios"        width="76" height="76" />
    <icon src="icon-76-2x.png"         gap:platform="ios"        width="152" height="152" />

    <gap:plugin name="com.phonegap.plugin.statusbar" />
    <gap:plugin name="org.Apache.cordova.device" />
    <gap:plugin name="org.Apache.cordova.dialogs" />
    <gap:plugin name="org.Apache.cordova.camera" />
    <gap:splash src="SplashScreenImage.jpg" gap:platform="winphone" />
    <gap:splash src="splash.png" />
    <gap:splash src="screen-iphone-portrait.png"         gap:platform="ios"     width="320" height="480" />
    <gap:splash src="screen-iphone-portrait-2x.png"      gap:platform="ios"     width="640" height="960" />
    <gap:splash src="screen-iphone-portrait-568h-2x.png" gap:platform="ios"     width="640" height="1136" />
    <gap:splash src="screen-ipad-portrait.png"           gap:platform="ios"     width="768" height="1024" />
    <gap:splash src="screen-ipad-landscape.png"          gap:platform="ios"     width="1024" height="768" />

    <gap:config-file platform="ios" parent="CFBundleShortVersionString">
    <string>100</string>
    </gap:config-file>

    <feature name="App">
      <param name="Android-package" value="org.Apache.cordova.App"/>
    </feature>
    <feature name="http://api.phonegap.com/1.0/network"/>

    <!-- Deprecated plugins element. Remove in 3.0 -->


</widget>
17
RAKESH DADHICH

Ajoutez ces lignes à votre fichier config.xml 

<preference name="StatusBarOverlaysWebView" value="false" />
        <preference name="StatusBarBackgroundColor" value="#000000" />
        <preference name="StatusBarStyle" value="lightcontent" />
      <gap:plugin name="com.phonegap.plugin.statusbar" />
14
sunil

La réponse acceptée par sunil n'est plus pertinente, le plugin est obsolète. 

Utilisez ce qui suit dans votre config.xml

<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="StatusBarBackgroundColor" value="#000000" />
<preference name="StatusBarStyle" value="lightcontent" />
<plugin spec="https://github.com/Apache/cordova-plugin-statusbar.git" source="git" />
25
JazzCat

Ceci peut être accompli avec l'aide du plugin statusbar . Tout ce dont vous avez besoin est d'installer le plugin via la ligne de commande phonegap plugin add https://github.com/Apache/cordova-plugin-statusbar.git puis d'ajouter l'événement StatusBar.hide(); onDeviceReady.

4
404

Si vous voulez masquer totalement la StatusBar, vous pouvez ajouter deux clés dans votre info.plist qui sont des booléens

Status bar is initially hidden - YES

View controller-based status bar appearance - NO
4
Sithys

Pour une utilisation détaillée dans codova 6+ maintenant, pour plus de solutions de @ sunil, nous devrions utiliser

cordova plugins add -save cordova-plugin-statusbar

Pour une utilisation détaillée: https://www.npmjs.com/package/cordova-plugin-statusbar

3
Alfred Huang

Résolution @sunil appliquée mais,

Mon problème était de "Politique de sécurité du contenu" sur iOS 10

La ligne ci-dessous ajoutée à index.html a résolu le problème:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' gap://ready file://* *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
3
Abbas Mulani

ajoutez ces lignes dans config.xml utilisez ceci cela corrigera votre problème et la barre d'état apparaîtra:

<preference name="StatusBarOverlaysWebView" value="true"/>

<preference name="StatusBarBackgroundColor" value="#000000"/>

<preference name="StatusBarStyle" value="lightcontent" />
0
Lakshay Sharma