Как ограничить приложение только портретным режимом в ионном режиме для всех платформ?
Я работаю над 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.
-
Установите плагин 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
-
Плагин импорта ScreenOrientation
Импортируйте плагин в свой controller
, более подробная информация доступна в документации.
import { ScreenOrientation } from '@ionic-native/screen-orientation';
@Component({
templateUrl: 'app.html',
providers: [
ScreenOrientation
]
})
constructor(private screenOrientation: ScreenOrientation) {
// Your code here...
}
-
Делай свое дело
Блокировка и разблокировка ориентации экрана программно.
// Set orientation to portrait
this.screenOrientation.lock(this.screenOrientation.ORIENTATIONS.PORTRAIT);
// Disable orientation lock
this.screenOrientation.unlock();
-
Бонусные очки
Вы также можете получить текущую ориентацию.
// 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>