2010-06-30 102 views
5

我有一個網站和一個本地iphone應用程序。應用程序註冊一個自定義協議。我希望網站在適當的時候自動重定向到協議,但只有當用戶安裝了應用程序時(以避免惱人的對話)。這意味着我需要從應用程序中編寫一些可以在移動Safari中閱讀的狀態,以將應用程序標記爲已安裝。餅乾似乎不存在交叉過程。我還有其他地方可以儲存我的標記嗎?iPhone應用程序和移動Safari瀏覽器之間是否有共享狀態?

回答

4

看看this博客文章,瞭解蘋果是如何爲Mobile Me Gallery應用程序做的。它涉及到應用程序在Safari中打開一個網站(在您的服務器上),它將一個'App Installed'Cookie加載到Safari中。

3

回到這個問題後,我發現了另一個部分解決方案。事實證明,無效的協議對話框不會像阻止警告一樣阻止JavaScript執行。

所以,這裏是如何啓動從Web應用程序時,你處理回退:

  • 註冊一個setTimeout的處理程序重定向到後,說回退頁(含window.location.replace),500毫秒
  • 註冊如果安裝了應用程序,取消超時
  • 打開的網址與你的自定義協議
  • 一個的onblur處理程序,瀏覽器會打開應用程序,模糊了網頁,並取消後備
  • 如果沒有安裝該應用程序,用戶將只能看到最多500毫秒的對話框他們接走後備頁面

其實我喜歡這更好,因爲之前同時,一方面人沒有應用有時會在網站上閃現對話,另一方面,它不會影響應用程序的首次啓動體驗。在huntaub的回答中描述的技術會在應用首次推出時引起一對分散注意的過渡和移動Safari的閃光。

相關問題