如何仅在所有平台的离子模式下将应用程序限制为纵向模式?

时间:2015-01-03 13:09:47

标签: ionic-framework

我正在使用Ionic / Cordova,我将其添加到androidManifest.xml,但这对我不起作用,应用程序仍以两种方式显示

android:screenOrientation="portrait"

如何将我的应用仅限制为纵向模式?我已经检查了android并且它没有工作

9 个答案:

答案 0 :(得分:287)

如果您只想在所有设备上限制为纵向模式,则应将此行添加到项目根文件夹中的config.xml。

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

之后,请在命令行中键入以下文本重建平台:

ionic build

答案 1 :(得分:33)

Ionic v2 + Update

对于Ionic版本2及更高版本,您还需要为您使用的任何插件安装相应的Ionic Native包,包括cordova-plugin-phonegap-plugin-个插件。

  1. 安装Ionic Native插件

    CLI为插件安装Ionic Native的TypeScript模块。

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

    *请注意,--save命令是可选的,如果您不希望将插件添加到package.json文件

  2. 导入ScreenOrientation插件

    将插件导入controllerdocumentation中提供了更多详细信息。

    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"
    

答案 2 :(得分:11)

根据https://cordova.apache.org/docs/en/4.0.0/config_ref/#global-preferences

  

方向允许您锁定方向并防止界面旋转以响应方向的变化。可能的值包括默认值,横向或纵向。例如:

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

请注意,这些值区分大小写,它是“方向”,而不是“方向”。

答案 3 :(得分:4)

首先,您需要使用

添加 Cordova屏幕方向插件
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);

});
})

答案 4 :(得分:3)

如果你想在你的方向做某事意味着你想在改变你的应用方向时执行任何动作,那么你必须使用离子框架插件... https://ionicframework.com/docs/native/screen-orientation/

如果您只想在纵向或横向模式下限制您的应用,那么您只需在config.xml中添加以下这些行

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

答案 5 :(得分:2)

请在android:screenOrientation="portrait"文件中添加androidManifest.xml作为android的活动标签的属性。

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

答案 6 :(得分:1)

在角度handles.ax=axes('NextPlot','add',... %get the axes where the detections will be plotted for an easy finding of the interference 'DataAspectRatio',[1 1 1],... %# match the scaling of each axis, 'XLim',[0 (handles.dataLength-20000)*(1/handles.fs)*(1e3)],... %# set the x axis limit, 'YLim',[0 eps],... %# set the y axis limit (tiny!), 'Color','none',... 'Position',[0.02 0.35 0.96 1]); set(handles.ax,'Parent',handles.detectAx);axes(handles.ax); %get the axes where the plot will be made 内,添加如下所示的行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" />

答案 7 :(得分:1)

在config.xml中添加以下行

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

答案 8 :(得分:0)

你可以试试这个: -

Cordova插件以iOS,Android,WP8和Blackberry 10的常用方式设置/锁定屏幕方向。此插件基于Screen Orientation API的早期版本,因此api目前不符合当前规范。

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

或在xml配置中尝试此代码: -

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