如何创建一个 iOS 网络应用程序,使其在处于非活动状态后 returns 恢复到之前的状态?

How can I create an iOS webapp that returns to the previous state after being inactive?

当我在 HTML 中创建 iOS webapp 时,我使用以下代码:

<meta name="apple-mobile-web-app-capable" content="yes" />

因此,将其作为 Safari 书签添加到 iPhone 的主屏幕并启动后,我注意到一旦我返回主屏幕并重新打开应用程序,网络应用程序不保持以前的状态。

它没有从我离开的地方开始,而是打开了开始页面。本机应用程序不会这样做。

如何创建一个 iOS 网络应用程序,使其在不活动后 returns 恢复到之前的状态?

您需要在页面每次更改时将其当前状态存储在本地(在 cookie、LocalStorage 或 IndexedDB 中),并在应用程序打开时读回该值。

Web 应用程序框架可能内置了此功能,但这是一个使用 LocalStorage 的粗略基本独立示例:

function pageChange(href) {
    // called when a new page is requested by the user
    // (could be set to run whenever an 'a' element is clicked)
    localStorage.setItem('last_href', href);
    window.location.href = href;
}

function startUp() {
    // runs when the web app starts up
    var last_href = localStorage.getItem('last_href');
    if (typeof last_href == "string" && last_href.length) {
        // check that last_href is actually stored
        // or it won't work the first time the web app is launched
        window.location.href = last_href;
    }
}