我使用AngularJS,Ionic和Bootstrap接管了一个项目,为移动设备创建混合应用程序。
升级到XCode 7之前一切顺利。我在编辑器中更新了我的HTML,CSS和JS代码,运行grunt run:ios
来创建平台代码并打开XCode。从那里我构建.ipa文件没有任何问题(只是一些警告,可以忽略)。
但是,由于使用XCode 7(iOS 8和iOS 9设备需要),splascreen将显示不正确。含义:在纵向模式下。
注意#1:启动画面和应用必须是仅横向的。
注意#2:运行grunt run:android
时,基于Android的设备上的一切都很好。
Per 34919547我将cordova-plugin-splashscreen插件更新为3.1.0版,如本文所述。我还更改了一个引用,因为旧版本在配置文件中是硬编码的。
现在首先在Portraid模式下错误地显示启动画面,然后在横向模式下(在定义的超时之后)显示它应该。所以事情会好一点,但不是100%。
如何在横向模式下完全显示 的启动画面?
答案 0 :(得分:0)
您是否尝试取消这行代码?
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
Class class = [self class];
SEL originalSelector = @selector(shouldAutorotate);
SEL swizzledSelector = @selector(splash_shouldAutorotate);
Method originalMethod = class_getInstanceMethod(class, originalSelector);
Method swizzledMethod = class_getInstanceMethod(class, swizzledSelector);
BOOL didAddMethod = class_addMethod(class,
originalSelector,
method_getImplementation(swizzledMethod),
method_getTypeEncoding(swizzledMethod));
if (didAddMethod) {
class_replaceMethod(class,
swizzledSelector,
method_getImplementation(originalMethod),
method_getTypeEncoding(originalMethod));
} else {
method_exchangeImplementations(originalMethod, swizzledMethod);
}
});
}
尝试取消它:
{
/*
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
Class class = [self class];
SEL originalSelector = @selector(shouldAutorotate);
SEL swizzledSelector = @selector(splash_shouldAutorotate);
Method originalMethod = class_getInstanceMethod(class, originalSelector);
Method swizzledMethod = class_getInstanceMethod(class, swizzledSelector);
BOOL didAddMethod = class_addMethod(class,
originalSelector,
method_getImplementation(swizzledMethod),
method_getTypeEncoding(swizzledMethod));
if (didAddMethod) {
class_replaceMethod(class,
swizzledSelector,
method_getImplementation(originalMethod),
method_getTypeEncoding(originalMethod));
} else {
method_exchangeImplementations(originalMethod, swizzledMethod);
}
});
*/
}
您可以在cordova-plugin-splashscreen/src/ios/CDVViewController+SplashScreen.m