Как ограничить приложение только портретным режимом в ионном режиме для всех платформ?

Я работаю над Ionic/Cordova, я добавил это в androidManifest.xml но это не сработало для меня, и приложение по-прежнему отображается в обоих направлениях

android:screenOrientation="portrait"

Как я могу ограничить свое приложение только в портретном режиме? Я проверил на Android, и это не работает

Ответ 1

Если вы хотите ограничить портретный режим только на всех устройствах, вы должны добавить эту строку в файл config.xml в корневой папке проектов.

<preference name="orientation" value="portrait" />

После этого перестройте платформу, введя текст в командной строке ниже:

ionic build

Ответ 2

Ионное обновление v2+

Для Ionic версии 2 и новее вам также необходимо установить соответствующий пакет Ionic Native для любого используемого вами плагина, включая cordova-plugin- и phonegap-plugin- plugins.

  1. Установите плагин Ionic Native

    Установите модуль Ionic Native TypeScript для плагина из CLI.

    $ ionic cordova plugin add --save cordova-plugin-screen-orientation
    $ npm install --save @ionic-native/screen-orientation
    

    * Обратите внимание, что команда --save является необязательной и может быть опущена, если вы не хотите добавлять плагин в свой файл package.json

  2. Плагин импорта ScreenOrientation

    Импортируйте плагин в свой controller, более подробная информация доступна в документации.

    import { ScreenOrientation } from '@ionic-native/screen-orientation';
    
    @Component({
        templateUrl: 'app.html',
        providers: [
            ScreenOrientation
        ]
    })
    
    constructor(private screenOrientation: ScreenOrientation) {
      // Your code here...
    }
    
  3. Делай свое дело

    Блокировка и разблокировка ориентации экрана программно.

    // Set orientation to portrait
    this.screenOrientation.lock(this.screenOrientation.ORIENTATIONS.PORTRAIT);
    
    // Disable orientation lock
    this.screenOrientation.unlock();
    
  4. Бонусные очки

    Вы также можете получить текущую ориентацию.

    // Get current orientation
    console.log(this.screenOrientation.type);  // Will return landscape" or "portrait"
    

Ответ 3

Согласно https://cordova.apache.org/docs/en/4.0.0/config_ref/#global-preferences,

Ориентация позволяет блокировать ориентацию и не допускать вращения интерфейса в ответ на изменения ориентации. Возможные значения: по умолчанию, пейзаж или портрет. Пример:

<preference name="Orientation" value="landscape" />

Помните, что эти значения чувствительны к регистру, это "Ориентация", а не "ориентация".

Ответ 4

Во-первых, вам нужно добавить плагин Ориентация экрана Кордовы, используя

cordova plugin add cordova-plugin-screen-orientation

а затем добавьте screen.lockOrientation('portrait'); в .run() метод

angular.module('myApp', [])
.run(function($ionicPlatform) {

    screen.lockOrientation('portrait');
    console.log('Orientation is ' + screen.orientation);

});
})

Ответ 5

Если вы хотите что-то сделать по своей ориентации, значит, вы хотите выполнить какое-либо действие при изменении ориентации приложения, тогда вам нужно использовать плагин ionic framework... https://ionicframework.com/docs/native/screen-orientation/

Если вы просто хотите ограничить ваше приложение в портретном или ландшафтном режиме, вам нужно просто добавить следующую строку в ваш config.xml

<preference name="orientation" value="portrait" />
                 OR
<preference name="orientation" value="landscape" />

Ответ 6

Внутри angular app.js добавьте строку screen.lockOrientation('portrait');, как показано ниже:

ап

angular.module('app', ['ionic'])
.run(function($ionicPlatform) {
    // LOCK ORIENTATION TO PORTRAIT.
    screen.lockOrientation('portrait');
  });
})

У вас также будет другой код в функции .run, но тот, который вас интересует, - это строка, которую я написал. Я не добавил строку <preference name="orientation" value="portrait" /> в свой код, но вам может потребоваться добавить cordova-plugin-device-orientation

Ответ 7

В config.xml добавьте следующую строку

<preference name="orientation" value="portrait" />

Ответ 8

Вы можете попробовать следующее: -

Плагин Cordova для установки/блокировки ориентации экрана в обычном режиме для iOS, Android, WP8 и Blackberry 10. Этот плагин основан на ранней версии API ориентации экрана, поэтому api в настоящее время не соответствует текущей спецификации.

https://github.com/apache/cordova-plugin-screen-orientation

или попробуйте этот код в xml config: -

<preference name="orientation" value="portrait" />

Ответ 9

Добавьте android:screenOrientation="portrait" в файл androidManifest.xml в качестве атрибута тега активности для Android.

<activity
        android:name="com.example.demo_spinner.MainActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
</activity>