我正在努力修改设备方向。我找到了这个cordova插件https://github.com/gbenvenuti/cordova-plugin-screen-orientation并且它正在使用cordova应用程序,但遗憾的是它无法使用IBM MobileFirst Platform Foundation 7.0(+ Angular,Ionic)。
我还试图按照https://forums.developer.apple.com/thread/6165对屏幕方向cordova插件做一些小扭曲,但它仍无法正常工作
这是YoikScreenOrientation.h的界面
@interface ForcedViewController : UIViewController
@property (strong, nonatomic) NSString *calledWith;
@end
和YoikScreenOrientation.m
@implementation ForcedViewController
#if __IPHONE_OS_VERSION_MAX_ALLOWED < 90000
- (NSUInteger)supportedInterfaceOrientations {
NSLog(@"lockViewController to ALL Portrait < 9");
return UIInterfaceOrientationMaskPortrait;
}
#else
-(UIInterfaceOrientationMask)supportedInterfaceOrientations{
NSLog(@"lockViewController to ALL Portrait > 9");
return UIInterfaceOrientationPortrait;
}
#endif
@end
我可以在日志中看到它通过supportedInterfaceOrientations
方法,但它不会将屏幕方向锁定为纵向。为了锁定或解锁设备方向,我错过了任何配置吗?
答案 0 :(得分:1)
在这种情况下,Cordova插件屏幕方向肯定没有帮助,所以我最后使用这个例子http://swiftiostutorials.com/ios-orientations-landscape-orientation-one-view-controller/来创建我的插件,并且可行,改变方向的关键是这个函数在调用之前调用方向改变了,这样我可以覆盖横向或纵向模式的方向, appdelegate.m
-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
if ([LANSCAPE_MODE isEqualToString:orientationMode]){
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
return UIInterfaceOrientationMaskPortraitUpsideDown;
else
return UIInterfaceOrientationMaskPortrait;
}
else{
return UIInterfaceOrientationMaskAll;
}
}
如果我尝试使用supportedInterfaceOrientations方法覆盖它会在不支持方向时崩溃,此链接会解释崩溃 https://devforums.apple.com/message/731764#731764