2014-09-25 53 views
1

我們有一個https webapp使用html緩存清單,因此它可以脫機運行。關閉任務切換器中的safari中斷添加到主屏幕

我們指示我們的用戶將其添加到主屏幕以獲得最佳體驗(手機上沒有地址欄等)。我們有一個問題,如果您從主屏幕中刪除應用程序,關閉Safari,然後重新打開並重新添加到主屏幕,應用程序將不會使用應用程序圖標,並且無法完成https請求並且缺少一些緩存數據。

該應用程序將繼續在safari中始終工作良好,所有資源都被緩存和加載,並且所有https請求均可正常工作。

以下是重現此操作的步驟,我們在iOS 7 iPhone,iOS 8 iPhone和iOS 7 iPad2上完成了此操作。這可能適用於製作https請求和使用緩存清單的其他web應用程序,但我不確定。這再現了真正的證書以及自簽名證書。

步驟,打破webapp的

  1. 轉到主屏幕
  2. 點擊並按住webapp的應用程序圖標
  3. 點按出現從主屏幕刪除應用程序的小X
  4. 點擊主頁按鈕關閉編輯模式
  5. 雙擊主頁按鈕
  6. 向上滑動所有打開的應用程序(Safari和Webapp如果打開)
  7. 重新打開Safari(應重新加載webapp)
  8. 點擊共享按鈕並添加到主屏幕。 (不應該顯示的標誌)
  9. 打開從主屏幕,並嘗試將應用部署

步驟來解決Web應用

  1. 如果web應用程序在主屏幕上存在,請執行以下操作:
  2. 點擊和web應用程序圖標
  3. 點按出現刪除它
  4. 輕按主的X抱但噸,收編輯模式
  5. 打開設置 - >野生動物園
  6. 點擊清除歷史記錄
  7. 點擊清除Cookies和數據
  8. 打開Safari,在https://OurWebappURL
  9. 型輕觸分享按鈕和應用程序添加到主屏幕從主屏幕(應顯示標識和「AppTitle」)
  10. 打開的應用程序和部署

下面是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問題。

回答

0

我們確定導致此問題的原因是通配證書的證書鏈不完整,或者使用自簽名證書。

完全簽名的單域證書大多數時間工作良好,我們向我們的客戶推薦,但似乎您可以通過聯繫您的證書提供商並請求安裝中間證書來修復證書鏈。

據我所知,我們在這種情況下沒有這樣做,我們去了一個鏈較短的單域證書。