iPhone应用程序处于挂起状态,由URL启动时,显示Default.png。

5
该应用程序响应自定义URL,并在挂起状态下正确启动。问题是,当以这种方式启动时,我可以禁用显示Default.png吗?
为了更清楚地说明用例:
1.正常启动应用程序 2.按Home键将应用程序置于待机状态 3.在移动Safari中点击应用程序识别的方案的URL 4.用户在启动完成之前看到Default.png。
正如您可能知道的那样,当快速应用程序切换激活时,通常会重新显示具有最后状态的屏幕截图而不是Default.png。这就是我希望在URL启动发生时发生的事情。
3个回答

3
这里有一个可能的解决方法。在尝试从Facebook的单点登录过程中无缝返回时,这让我头疼不已。我想呈现回到我的应用程序登录区域的外观,而不是重新启动应用程序的外观,即使我以各种可能的方式验证了应用程序确实是从快速应用程序切换返回而不是真正重新启动。
虽然我找不到任何强制应用程序显示先前状态截图的方法,但我发现应用程序会显示Default-scheme .png(例如,Default-fb12345.png或Default-appname.png),当通过url调用时。因此,如果您的应用程序切换后的截图相当可预测,请从iOS模拟器中抓取屏幕截图并将其复制到应用程序中。我认为这是一个iOS错误。应用程序应始终显示最后一个截图,而不是仅仅因为涉及url就显示Default-scheme.png。
另一个可能性,我没有测试过的,是将包中的Default-scheme.png(和Default-scheme@2x.png)链接到应用程序主目录中的快照文件。对于大多数情况,这将是Library / Caches / Snapshots / [Bundle identifier] / UIApplicationAutomaticSnapshotDefault-Portrait@2x.jpg(除非它是横向,或者是iPad)。如果您的应用程序状态不可预测但方向固定,则可以尝试此选项。

3
看起来快速应用切换并没有真正地起作用。所以:
  1. 确保您正在为OS 4.0构建应用程序。如果不是,您的应用程序将没有快速应用切换支持。
  2. 查看快速应用切换是否在您的应用程序中正常工作。例如,当您仅切换到Safari,然后重新启动您的应用程序时,您是否会得到"default.png"?
  3. 在调试器下运行应用程序,但在实际设备上进行。使问题发生,进入组织者,在设备日志下查看。这将显示您的应用程序是否由于低内存问题而被“终止”,当启动Safari时,因此需要在选择URL时“重新启动”。
  4. 我相信有两个机制。在我的应用程序中,我不支持“使用URL启动”,但我所做的是支持应用程序代理的调用:

-(BOOL) application:(UIApplication *) application handleOpenURL:(NSURL *) url {

这可能是不同之处——这是可以向正在运行的应用程序发出的调用,以让它处理URL。如果您正在使用其他技术,请改用此方法。我使用这种方法,不会看到"default.png"——即不会在调用时激发“干净重启”。


快速应用切换不是问题。我已确认它正常工作。 - NWCoder
你尝试过第二和第三种方法吗?问题是你的应用程序是否被“关闭” - 最有可能是因为你的应用程序和Safari一起运行占用了太多内存。 - Brad
是的,我可以继续调试会话,并且我知道这是一个 FAS 启动。如果您有一个同时具有 FAS 和 URL 启动的应用程序,您可以确认我的问题是正确的。 - NWCoder
看吧 - 这就是问题所在 - 我确实有一个支持FAS的应用程序 - 它并没有展示出你所看到的问题。请查看原始答案下新修订的#4。 - Brad

0

确保在Info.plist中设置了“所需的后台模式”键,以便应用程序需要的功能正常运行。如果没有列出来,我会使用“应用程序播放音频”来保持其开启。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接