Однако я не мог найти никаких решений. Atlast я достиг этого с помощью CSS.
-ms-transform:rotate(-90deg); /* IE 9 */
-webkit-transform:rotate(-90deg); /* Chrome, Safari, Opera */
transform:rotate(-90deg); /* Standard syntax */
В любом случае это не идеальное решение, но оно работает.
Кроме того, вы можете программно изменить одну страницу на альбомную, используя собственный код, и вызвать ее с помощью 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 ‹ 3.0),
<plugins>
<plugin name="ScreenOrientation" value="ScreenOrientation" />
</plugins>
В проектах Cordova> Плагины щелкните правой кнопкой мыши и выберите новый файл, затем в iOS выберите Cocoa touch, затем выберите класс target-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», найдите ниже и измените возврат, по умолчанию это будет «ДА», измените его на «НЕТ».
CDVViewController.m
- (BOOL)shouldAutorotate
{
return NO;
}
И в настройках проекта, в Ориентациях устройств отметьте все опции (хотя и не важные),
Project Settings > Device orientation > Tick all 4 options.
и вызовите его из своего проекта следующим образом:
callScreenOrientation('LandscapeLeft');
callScreenOrientation('LandscapeRight');
callScreenOrientation('Portrait');
callScreenOrientation('PortraitUpsideDown');
08.05.2014