Magazine Internet

Forcer l'orientation de l'application pour iOS et Android avec Titanium

Publié le 08 juin 2015 par Rkueny

Vous avez déjà dû vouloir forcer l’orientation de votre application. Nous allons rapidement voir comment faire cela pour iOS et Android.

Forcer l’orientation pour iOS

Commençons par le plus simple. En effet, pour iOS, il vous suffit d’enlever quelques lignes. Cela se passe dans le fichier tiapp.xml :

<?xml version="1.0" encoding="UTF-8"?>
<ti:app xmlns:ti="http://ti.appcelerator.org">
    <ios>
        <plist>
            <dict>
                <key>UISupportedInterfaceOrientations~iphone</key>
                <array>
                    <string>UIInterfaceOrientationPortrait</string>
                </array>
                <key>UISupportedInterfaceOrientations~ipad</key>
                <array>
                    <string>UIInterfaceOrientationPortrait</string>
                    <string>UIInterfaceOrientationPortraitUpsideDown</string>
                    <string>UIInterfaceOrientationLandscapeLeft</string>
                    <string>UIInterfaceOrientationLandscapeRight</string>
                </array>
            </dict>
        </plist>
    </ios>
</ti:app>

Si vous voulez n’avoir que l’orientation portrait il vous suffit d’enlever les lignes : <string>UIInterfaceOrientationLandscapeLeft</string> et <string>UIInterfaceOrientationLandscapeRight</string>.

Pas bien compliqué n’est-ce pas ? Passons à Android.

Forcer l’orientation pour Android

L’opération est un poil plus compliquée. Tout d’abord, buildez votre application. Une fois le build fini, ouvrez le fichier tiapp.xml. Remplacez la ligne : <android xmlns:android="http://schemas.android.com/apk/res/android"/> par

<android xmlns:android="http://schemas.android.com/apk/res/android">
  <manifest>
  </manifest>
</android>

Ouvrez ensuite le fichier <PROJECT_NAME>/build/android/AndroidManifest.xml et copiez le noeud qui contient les noeuds .

Par exemple :

<?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.myapp.app" android:versionCode="1" android:versionName="1.0">
  <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="19"/>
 
    <!-- Start Copying Here -->
 
  <application android:icon="@drawabe/appicon" android:label="MyApp" android:name="MyappApplication" android:debuggable="false" android:theme="@style/Theme.AppCompat">
    <activity android:name=".MyappActivity" android:label"@string/app_name" android:theme="@style/Theme.Titanium" android:configChanges="keyboardHidden|orientation|screenSize">
      <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
      </intent-filter>
    </activity>
    <activity android:name="org.appcelerator.titanium.TiActivity" android:configChanges="keyboardHidden|orientation|screenSize"/>
    <activity android:name="org.appcelerator.tianium.TiTranslucentActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:theme="@style/Theme.AppCompat.Translucent"/>
    <activity android:name="ti.modules.titanium.ui.android.TiPreferencesActivity" android:configChanges="screenSize"/>
  </application>
 
    <!-- Stop Copying Here -->
  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
  <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>
</manifest>

Collez cela entre les de votre fichier tiapp.xml. Ensuite, dans chaque noeud ajoutez :

  • android:screenOrientation=”VALUE”

La liste des valeurs possibles est disponible sur la documentation officielle. (“portrait”, “landscape”, etc…).

Cela donnerait par exemple :

<android xmlns:android="http://schemas.android.com/apk/res/android">
  <manifest>
    <application android:icon="@drawabe/appicon" android:label="MyApp" android:name="MyappApplication" android:debuggable="false" android:theme="@style/Theme.AppCompat">
      <activity android:screenOrientation="portrait" android:name=".MyappActivity" android:label"@string/app_name" android:theme="@style/Theme.Titanium" android:configChanges="keyboardHidden|orientation|screenSize">
        <intent-filter>
          <action android:name="android.intent.action.MAIN"/>
          <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
      </activity>
      <activity android:screenOrientation="portrait" android:name="org.appcelerator.titanium.TiActivity" android:configChanges="keyboardHidden|orientation|screenSize"/>
      <activity android:screenOrientation="portrait" android:name="org.appcelerator.tianium.TiTranslucentActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:theme="@style/Theme.AppCompat.Translucent"/>
      <activity android:screenOrientation="portrait" android:name="ti.modules.titanium.ui.android.TiPreferencesActivity" android:configChanges="screenSize"/>
    </application>
  </manifest>
</android>

C’est bon, vous savez désormais comment indiquer à votre application iOS ou Android l’orientation que vous désirez.


Retour à La Une de Logo Paperblog

A propos de l’auteur


Rkueny 160 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Magazine