我有一个用 Cordova 3+ 为 iPhone 开发的应用程序。目前该应用程序运行良好。我还限制了当前应用程序的横向 View ,即应用程序仅以纵向显示。应用程序由很多描述和一个报告页面组成。我想要的是以纵向显示所有页面并以横向显示报告页面。我正在使用 Backbone.js + underscore.js 框架。有没有人对此有任何建议或解决方案?提前致谢! 编辑:我想要的是强制该特定报告页面在横向 View 中显示。并以纵向显示所有其他页面。 编辑:在 iPhone 中为cordova 3+ 以编程方式控制屏幕方向 最佳答案 但是我找不到任何解决方案。 Atlast 我使用 CSS 实现了它。-ms-transform:rotate(-90deg); /* IE 9 */-webkit-transform:rotate(-90deg); /* Chrome, Safari, Opera */transform:rotate(-90deg); /* Standard syntax */无论如何它不是一个完美的解决方案,但它有效。 您可以使用 native 代码以编程方式将单个页面更改为横向,并通过使用 javascript 调用它。 创建一个新的 js 文件作为 ScreenOrientation.js 并插入以下代码,var ScreenOrientation = { //alert(orientation);callScreenOrientationNative: function(success,fail,orientation) { return Cordova.exec( success, fail, "ScreenOrientation", "screenorientationFunction", [orientation]);}};并将上述文件添加到 index.html 中,如下所示,<script type="text/javascript" src="ScreenOrientation.js"></script>在任何添加的 js 文件中添加以下函数(在我的项目中,我添加了一个 script.js 文件来添加常用函数),function callScreenOrientation(orientation) { ScreenOrientation.callScreenOrientationNative(nativePluginResultHandler,nativePluginErrorHandler,orientation);}function nativePluginResultHandler (result) {}function nativePluginErrorHandler (error) {}在 config.xml 中,在功能名称下添加以下内容,<!-- Screen Orientation custom plugin to display reports page. --> <feature name="ScreenOrientation"> <param name="ios-package" value="ScreenOrientation"/> </feature>在插件下添加(对于cordova <plugins> <plugin name="ScreenOrientation" value="ScreenOrientation" /></plugins>在 Cordova 项目 > 插件上右键单击并选择新文件,然后从 iOS 中选择 Cocoa touch,然后选择 Objective-C 类并单击下一步,在类名中插入“ScreenOrientation”和“CDVPlugin”的子类,然后单击下一步并单击创建。在 ScreenOrientation.h 中输入以下内容,#import <Cordova/CDV.h>@interface ScreenOrientation : CDVPlugin- (void) screenorientationFunction:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options;@end在 ScreenOrientation.m 中输入以下内容,#import "ScreenOrientation.h"@implementation ScreenOrientation- (void) screenorientationFunction:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options { [arguments pop]; NSString *orientation = [arguments objectAtIndex:0]; if ( [orientation isEqualToString:@"LandscapeLeft"] ) { NSLog(@"Landscape Left"); [[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationLandscapeLeft]; } else if ( [orientation isEqualToString:@"LandscapeRight"] ) { NSLog(@"Landscape Right"); [[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationLandscapeRight]; } else if ( [orientation isEqualToString:@"Portrait"] ) { NSLog(@"Portrait"); [[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationPortrait]; } else if ( [orientation isEqualToString:@"PortraitUpsideDown"] ) { NSLog(@"Portrait upSide Down Left"); [[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationPortraitUpsideDown]; }}@end在 Cordova 项目中单击搜索并搜索“shouldAutoRotate 并找到以下并更改返回值,默认情况下它将'YES'更改为'NO'。 CDVViewController.m - (BOOL)shouldAutorotate{ return NO;}在项目设置中,在设备方向中检查所有选项(虽然不重要),Project Settings > Device orientation > Tick all 4 options.并像这样从您的项目中调用它,callScreenOrientation('LandscapeLeft');callScreenOrientation('LandscapeRight');callScreenOrientation('Portrait');callScreenOrientation('PortraitUpsideDown');关于javascript - Cordova iOS 在单页上将屏幕方向更改为横向,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23286177/
10-11 05:33