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


Я работаю над Ionic / Cordova, я добавил Это к androidManifest.xml но это не сработало для меня, и приложение все еще показывает в обоих направлениях

android:screenOrientation="portrait"

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

8 90

8 ответов:

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

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

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

ionic build

Ionic v2 + Update

для ионных версий 2 и более поздних вам также нужно будет установить соответствующий Ионные Уроженца пакета для любого плагина, который вы используете, в том числе cordova-plugin- и phonegap-plugin- Плагины.

  1. Установите Ionic Native Plugin

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

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

    Примечание: это необязательным и может быть опущен, если вы не хотите, чтобы добавить плагин в свой package.json file

  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"
    

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

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

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

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

во-первых, вам нужно добавить Cordova Screen Orientation Plugin используя

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);

});
})

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

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

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

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

an

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

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

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

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

Вы можете попробовать это:-

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

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

или попробуйте этот код в конфигурации xml: -

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