Worklight 6.2和iOS7中的本机页面的方向问题

时间:2014-10-29 05:02:43

标签: cordova ios7 ibm-mobilefirst

我正在使用适用于iOS的Worklight Studio 6.2开发混合应用程序。应该强制应用程序横向。在iOS 7中,当我调用本机页面时,即使我已将视图控制器设置为横向,方向也默认为纵向。方向适用于iOS 8。

我尝试使用以下代码将原生页面设置为横向,但它不起作用:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
  // Return YES for supported orientations
return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));
}

- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

更新:使用WL.NativePage.show时,我们也解决了该问题 您需要打开PMR才能收到包含此修复程序的版本。


奇怪的是,它不能在iOS 7中运行,但在iOS 8中运行。如果您希望可以让open a PMR让Worklight开发团队查看它。

也就是说,使用SendAction API时,方向可以正常工作,可以启动Worklight 6.2 The SendAction API基本上允许您向本机发送“命令” - 动作,通过此操作,您可以执行任何操作。例如,打开一个您自己可以完全控制它的视图控制器,这比WL.NativePage.show允许的要好得多。

以下示例基于NativePagesInHyridApp sample project中的Getting Started page

  1. 在常见的\ js \ main.js中,您可以根据需要发送操作:

    function openNativePage(){
        ...
        ...
        WL.App.sendActionToNative("openViewController");
    }
    
  2. 在NativePagesInHybridApp.h中,将WLActionReceiver协议添加到接口,即:

    @interface MyViewController : MyViewController <WLInitWebFrameworkDelegate, WLActionReceiver> {
    
    }
    
  3. 在NativePagesInHybridApp.m中,添加实现:

    @implementation MyAppDelegate
    
    -(void)onActionReceived:(NSString *)action withData:(NSDictionary*) data{
        NSLog(@"onActionReceived :: %@", action);
    
        [self performSelectorOnMainThread:@selector(addViewController) withObject:nil waitUntilDone:YES];    
    }
    
    -(void)addViewController{
        HelloNative *helloNativeViewController = [[HelloNative alloc] init];
        [self.window.rootViewController addChildViewController:helloNativeViewController];
        [self.window.rootViewController.view addSubview:helloNativeViewController.view];
    }
    
    ...
    ...
    
  4. 现在,当您启动应用程序并单击按钮时,将显示生成的视图控制器 - 也是横向显示。

    在上面的示例中,视图控制器是在代码中实现的,但您可以使用XIB或created in Storyboard创建自己的视图控制器并将其调用...