【问题标题】:iOS How to exit current app after using UIApplication openURL to launch a browseriOS 如何在使用 UIApplication openURL 启动浏览器后退出当前应用程序
【发布时间】:2011-05-11 17:24:49
【问题描述】:

我对 iOS 开发非常陌生。我需要的应用程序非常简单:只需打开网络浏览器并在我的应用程序启动时转到特定的 URL。所以在delegate文件中,在didFinishLaunchingWithOptions中,我添加了一行代码:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com"]];

该应用程序可以打开 safari 并转到 google,但是当我按下主页按钮并尝试再次打开该应用程序时,我得到了一个写入屏幕。我知道我调用浏览器后必须释放资源,但我不知道该怎么做。

非常感谢。

【问题讨论】:

  • 你不会指望苹果会批准这个,是吗?
  • 我在模拟器(iOS 4.2 GM)中没有这个问题。
  • @ceejayoz:Apple 绝对不会批准这种行为,但这可能只是练习或个人/内部使用。
  • 既然老板这么说,我必须做到。我也想知道为什么不去野生动物园并输入链接,但我别无选择。我在这里所做的只是为我们的客户节省几秒钟的时间来输入地址......
  • @Evan Mulawski:它不适用于 4.0 或 4.1 iphone 模拟器,但它适用于 ipad 3.2

标签: iphone ios uiapplication openurl


【解决方案1】:

正如其他人已经回答的那样,如果这就是您的应用要做的全部,您的应用可能不会获得批准,但要回答您的问题:

您的问题是应用程序在 iOS 4 上进行多任务处理,当应用程序从后台重新聚焦时,-[UIApplicationDelegate didFinishLaunchingWithOptions:] 不会再次被调用。 (更多关于应用程序委托方法如何与多任务处理一起工作here。)

如果这是您的应用程序要做的全部,那么最简单的解决方法就是简单地opt out of multitasking

如果您不选择退出,则需要将相同的“openURL”逻辑放入使用多任务处理时调用的应用委托方法之一,例如-[UIApplicationDelegate applicationDidBecomeActive:]

【讨论】:

    【解决方案2】:

    如果您的唯一目的是启动网站,则不需要应用程序(Apple 无论如何都不会批准)。只需将apple-touch-icon.png 图像添加到您网站的根目录,任何人都可以将网站添加到他们的主屏幕并让它看起来像一个应用程序。

    http://www.apple.com/webapps/whatarewebapps.html

    http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html

    【讨论】:

    • 我不认为这是他唯一的目的。他的应用程序可能需要在使用前注册,这就是为什么我在 cmets 中建议提醒用户他们将被转移到网页。
    猜你喜欢
    • 2011-03-20
    • 2014-11-12
    • 2011-08-06
    • 2011-01-16
    • 1970-01-01
    • 2017-02-17
    • 1970-01-01
    • 2016-10-09
    • 1970-01-01
    相关资源
    最近更新 更多