【问题标题】:iphone safari web app backgroundingiphone safari web 应用程序后台
【发布时间】:2012-03-08 13:17:36
【问题描述】:

我正在开发一个 iPhone 网络应用程序,遵循可以在此处找到的一些建议:http://matt.might.net/articles/how-to-native-iphone-ipad-apps-in-javascript/。特别是,我将其设计为在没有 Safari 地址栏的情况下使用

在全屏窗口中打开
<meta name="apple-mobile-web-app-capable" content="yes" />.

在我自己的 iPhone 4 上,当我测试这会产生奇怪的行为。与其他应用程序和 Safari 不同,当我离开这个应用程序时,它没有背景;它不保存执行状态。它只会失去一切。如果我在手机上切换到其他东西,然后回到我的网络应用程序,它会重新启动它。所以,这里有一些个人问题使我感到困惑:

1) 这是标准行为还是我的手机发生了什么奇怪的事情?也就是说,如果您对 iPhone 有特定的了解并且知道这不应该发生,我很想知道。否则,

2) 可以做些什么来改变这一点吗?我可以让它像在 Safari 中一样保存当前状态吗?

Safari 开发者文档奇怪地对此保持沉默。

【问题讨论】:

    标签: iphone web-applications mobile-safari


    【解决方案1】:

    这是一种标准行为。 如此处所述:Prevent web app restart on iPad task switch 您必须将状态保存到 localStorage 并在启动时检查它并伪造状态。

    【讨论】:

    • 啊。感谢您指出我之前的问题。这很令人失望。
    【解决方案2】:

    至少在 iOS 4.2.1、5.1.1、6.0 和 6.1 下,这似乎是可能的;我认为这个问题接受的答案是错误的。

    诀窍是这样做:

    // Start or resume session
    session_start(); 
    
    // Extend cookie life time by an amount of your liking
    $cookieLifetime = 365 * 24 * 60 * 60; // A year in seconds
    setcookie(session_name(),session_id(),time()+$cookieLifetime);
    

    有关此策略的更详细讨论,请查看Maintain PHP Session in web app on iPhone

    【讨论】:

      猜你喜欢
      • 2011-04-21
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多