1

我正在开发一个设计为仅使用横向方向的 iPhone 应用程序(PhoneGap 3.0,Xcode 4.6.3)。我已经在 Xcode 中包含了适当大小的启动图像,并且只指定了 iPhone 作为目标设备,并且只启用了横向左和横向右。

我有一个启动画面图像,我也将它用作我的应用程序第一页上的背景图像。我的预期目标是从初始屏幕到我的应用程序的第一页(发生的所有事情都是一个按钮,淡入)有一个无缝/不可见的过渡。

这是有效的,但是在启动画面加载后......片刻之后,启动画面图像(不确定它是否相同)旋转并且未对齐/放大。然后消失,我们到达第一个我的应用程序的页面。

这是并排的 - 左侧是启动画面,右侧是启动画面短暂旋转时发生的情况。

左:带有按钮的闪屏。 右:闪屏短暂旋转

我还制作了一段视频,说明我尝试启动该应用程序时会发生什么。您可以在此 YouTube 视频中看到旋转/闪烁。

我安装了闪屏插件,认为这可以让我更好地控制这个问题。在最外面的 config.xml 文件中,我更新了这一行:

<preference name="AutoHideSplashScreen" value="true" />

并将值设置为false

当我这样做时,初始屏幕最初显示正确,但是当它旋转时......它与微调器一起“冻结”到位。此行为在同一视频的后半部分可见。

我想删除这个闪屏旋转,感觉就像我忽略了一些相当基本的东西。闪屏插件放大效果的事实向我暗示这可能是某处的 Xcode 设置?

不确定尝试解决此问题的最佳方法。我看的越多,我就越不确定这是PhoneGap 还是Xcode 问题。非常感谢任何帮助或建议,因为我花了很多时间试图解决这个问题。

我已经看到了一些与我类似的其他问题,但到目前为止还没有明确的答案来说明可能导致这种情况的原因。一些较旧的答案,虽然问题描述非常相似,但我无法再找到参考代码。

启动画面运行然后在应用程序启动之前闪烁错误的随机图像
iPhone 5 启动画面无法正确显示 - Phonegap

4

2 回答 2

1

以下是我的处理方式。不幸的是,该修复程序为您的项目添加了资源,但不显示白色闪烁或旋转的背景图像。

您看到的第一张图片是 Xcode 对正确方向的初始屏幕的渲染。几秒钟的旋转是PhoneGap 的渲染,这就是问题所在,在文件CDVSplashScreen.m 中。我不太熟悉 Objective-C 或 Cordova 的代码来重写这个插件,但作为一个修复,我做了以下事情:

(1) 复制所有屏幕图像并通过将 Cordova 添加到文件开头来重命名它们。例如,您将拥有 Default.png 和 CordovaDefault.png。对于所有新的以 Cordova 命名的图像,将它们设为原始背景图像的纯色背景颜色(或在我的情况下为图案)。

(2) 打开 CDVSplashScreen.m 并找到以下行:

    if (imageName) {
        imageName = [imageName stringByDeletingPathExtension];
        } else {
        imageName = @"Default";
        }

对于我拥有的版本,这是第 126 行。将这些行替换为:

    imageName = @"CordovaDefault";

这样做是告诉 PhoneGap 使用新图像,并将原始图像留给 Xcode。

于 2013-10-18T17:31:35.970 回答
0

看起来正在出现和旋转的启动图像是Default~iphone.png

在一些额外的测试中,我发现在最外层的 config.xml 文件中,我可以通过修改以下代码来移除这个旋转的闪屏实例

    <feature name="SplashScreen">
            <param name="ios-package" value="CDVSplashScreen" />
            <param name="onload" value="true" />
    </feature>

并将onload参数设置为false值。这似乎奏效了。

我现在在启动屏幕和我的应用程序的第一页之间看到一个白色的“闪烁”,但我在这里看到了几个与此相关的问题......所以感觉像是进步。

// 编辑:我相信旋转后的启动图像实际上是 PhoneGap 的启动画面(并且启动画面插件旨在处理其他人报告的白色“闪烁/闪烁”问题)。当应用程序设置为仅横向时,不确定为什么以这种方式处理Default~iphone.png启动图像。

于 2013-09-03T13:06:50.707 回答