Cordova 在iOS设备处于横向(水平翻转)时强制方向为纵向

Cordova 在iOS设备处于横向(水平翻转)时强制方向为纵向,cordova,ios7,ibm-mobilefirst,hybrid-mobile-app,cordova-plugins,Cordova,Ios7,Ibm Mobilefirst,Hybrid Mobile App,Cordova Plugins,首先,我查看了iOS的force纵向/横向上的许多其他线程 我有一个使用IBM Worklight构建的混合应用程序(我主要关注的是iOS平台,因为我已经有了一个适用于Android的解决方案,可以正常工作)。我添加了一个cordova插件来访问设备功能。我的应用程序需要在除一个屏幕外的所有屏幕上设置为纵向。在一个屏幕上(视图),我需要支持横向和纵向。然而,当我导航到另一个屏幕时,我只需要返回到肖像,但在我的多次尝试中,它停留在风景中 我正在使用supportedInterfaceOrienta

首先,我查看了iOS的force纵向/横向上的许多其他线程

我有一个使用IBM Worklight构建的混合应用程序(我主要关注的是iOS平台,因为我已经有了一个适用于Android的解决方案,可以正常工作)。我添加了一个cordova插件来访问设备功能。我的应用程序需要在除一个屏幕外的所有屏幕上设置为纵向。在一个屏幕上(视图),我需要支持横向和纵向。然而,当我导航到另一个屏幕时,我只需要返回到肖像,但在我的多次尝试中,它停留在风景中

我正在使用
supportedInterfaceOrientations
shouldAutorotate
方法锁定和解锁,并在仅支持纵向或横向和纵向之间切换

注意:我的应用程序只有一个包含webview的视图控制器,所以我不能使用解决方案来关闭和显示模式视图控制器

我还看过其他提到在iOS中使用transform强制旋转的线程,但这似乎也不起作用

(我的应用程序支持iOS7及以上版本) 唯一对我有用的是

[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];

然而,如果我因为私有api而使用这些应用程序,苹果将拒绝我的应用程序


当设备旋转到横向时,是否有其他方法强制方向为纵向?

我最近在使用worklight 6.2时遇到了类似的问题。即使在我在appname.plist文件中设置SupportedOrientations属性时,它也不起作用。在worklight 6.1中,当我设置上述属性时,它工作得非常好,您不需要进行任何其他设置

我知道在ios版phonegap插件中有一种奇怪的强制定向方法。我在答案中添加了ios和js代码

IOS

下面是我用来设置count1=1的插件,它将用于强制定向

HelloworldPlugin.m

#import "HelloworlPlugin.h"

@implementation HelloworlPlugin

int count=0;



-(void)sayhello:(NSMutableArray *)arguments withDict:(NSMutableDictionary *)option
{
    [arguments pop];
    NSString *responseString=[NSString stringWithFormat:@"%@",[arguments objectAtIndex:0]];

 if([responseString isEqualToString:@"1"])
 {
     count=1;
 }
    else
    {
        count=0;
    }
    NSLog(@"Zero %@",responseString);
}

-(int)count1
{
    NSLog(@"count= %d",count);
    if(count<1)
    {

        Cv=0;
    }
    else
    {
        Cv=1;
    }

    NSLog(@"%d",Cv);
    return Cv;


}

@end
clickbutton()是用于转到纵向的按钮。在上述目标c编程中,我传递的参数1被设置为计数1

function clickbutton()
{
    cordova.exec(success,failure,"HelloworlPlugin","sayhello",[1]);
}

我刚才举了一个例子,你可以放大一点,根据需要使用

当你说“屏幕”时,这些是HTML页面还是本机页面?不清楚您的Cordova代码是否仅在后台执行(实现本机代码的插件),或者是否也使用WL.nativePagest的所有HTML页面转到本机页面。我正在使用一个定制的Cordova插件,通过在Xcode中创建一个类来锁定和解锁某些HTML页面上的方向。由于该应用程序只有一个视图控制器,其中包含webview,因此我正在操作其支持界面,并应自动旋转功能以解锁和锁定方向。如果我的答案对您有任何帮助,请向上投票并接受我的答案
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    HelloworlPlugin *object=[[HelloworlPlugin alloc] init];

    int fValue=[object count1];

    NSLog(@"%d",fValue);
    if(fValue==1)
    {
    return (interfaceOrientation ==UIInterfaceOrientationPortrait);

    }
    else
    {
        return true;
    }
}
function clickbutton()
{
    cordova.exec(success,failure,"HelloworlPlugin","sayhello",[1]);
}