我們有一個https webapp使用html緩存清單,因此它可以脫機運行。關閉任務切換器中的safari中斷添加到主屏幕
我們指示我們的用戶將其添加到主屏幕以獲得最佳體驗(手機上沒有地址欄等)。我們有一個問題,如果您從主屏幕中刪除應用程序,關閉Safari,然後重新打開並重新添加到主屏幕,應用程序將不會使用應用程序圖標,並且無法完成https請求並且缺少一些緩存數據。
該應用程序將繼續在safari中始終工作良好,所有資源都被緩存和加載,並且所有https請求均可正常工作。
以下是重現此操作的步驟,我們在iOS 7 iPhone,iOS 8 iPhone和iOS 7 iPad2上完成了此操作。這可能適用於製作https請求和使用緩存清單的其他web應用程序,但我不確定。這再現了真正的證書以及自簽名證書。
步驟,打破webapp的
- 轉到主屏幕
- 點擊並按住webapp的應用程序圖標
- 點按出現從主屏幕刪除應用程序的小X
- 點擊主頁按鈕關閉編輯模式
- 雙擊主頁按鈕
- 向上滑動所有打開的應用程序(Safari和Webapp如果打開)
- 重新打開Safari(應重新加載webapp)
- 點擊共享按鈕並添加到主屏幕。 (不應該顯示的標誌)
- 打開從主屏幕,並嘗試將應用部署
步驟來解決Web應用
- 如果web應用程序在主屏幕上存在,請執行以下操作:
- 點擊和web應用程序圖標
- 點按出現刪除它
- 輕按主的X抱但噸,收編輯模式
- 打開設置 - >野生動物園
- 點擊清除歷史記錄
- 點擊清除Cookies和數據
- 打開Safari,在
https://OurWebappURL
- 型輕觸分享按鈕和應用程序添加到主屏幕從主屏幕(應顯示標識和「AppTitle」)
- 打開的應用程序和部署
下面是HTML的塊標籤,告訴它作爲webapp運行並使用應用程序圖標(它是跨平臺的)。
<html lang="en" manifest="cache.manifest">
<head>
<title>Our App Title</title>
<!-- Enable the homescreen app on mobile devices -->
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<!-- Enable the App Icon -->
<link rel="icon" type="image/png" sizes="196x196" href="images/AppIcon.png">
<link rel="apple-touch-icon" href="images/AppIcon.png">
<link rel="apple-touch-startup-image" href="https://ourURL/images/iPhoneStartup.png">
<meta name="viewport" content="width=device-width" />
<meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, height=device-height, width=device-width" />
<meta http-equiv="content-language" content="en">
如果我們去掉<meta name="apple-mobile-web-app-capable" content="yes" />
,導致它打開Safari瀏覽器並加載應用程序在那裏,它工作得很好,因爲它只是裏面的Safari上運行。但是,這不是我們想要的體驗,所以這是一種解決方法,而不是解決方案。這也不能解決第二次添加到主屏幕的問題,該標識仍未被使用。
我們還沒有註冊爲蘋果開發者,所以我不能記錄一個錯誤報告。請插入任何想法或反饋,這是一個非常艱難的!
編輯:我現在測試了這個與同一個應用程序的http(無SSL)版本,它工作正常,這似乎是一個https問題。