2014-04-19 22 views
0

我有一個應用程序允許用戶安裝配置文件。我通過在視圖控制器上顯示一個按鈕來實現這一點,當點擊該按鈕時,會顯示一個非常基本的HTML頁面(使用Cocoa HTTP Server),該頁面具有一個iframe,它將打開.mobileconfig文件並允許用戶安裝它。用戶安裝配置文件後(或者確實取消安裝),iOS自動將用戶切換回Safari瀏覽器應用程序。我已經設置了自定義的URL方案,並且完美地工作。Safari meta刷新不能與我的iphone應用程序配合使用

我想要做的是在用戶安裝配置文件後自動將用戶重定向迴應用。我認爲最好的方法是使用http-equiv="refresh" meta標籤,但是如果在刷新時間內完成安裝(如果有意義的話),它似乎只會重定向用戶。

例如,如果我能夠安裝配置文件並在3秒內切換回safari - 它可以工作。如果我花5秒或更多時間安裝配置文件,我將不會重定向。好像元刷新計時器在後臺運行,如果Safari不在前臺 - 它不會這樣做。

我的問題是如何在安裝配置文件後自動將用戶重定向到我的應用程序,無論它需要多長時間?我已經看過使用JavaScript,但正如你可以在iPhone中關閉它,我寧願不使用它。

的Index.html

<html> 
<head> 
    <meta http-equiv="refresh" content="4;url=myapp://"> 
    <meta http-equiv="content-type" content="application/x-apple-aspen-config; charset=UTF-8"> 
    <title>Profile Installer</title> 
    <style> 
     #main{ 
      font-family: "Helvetica"; 
      padding-top: 500px; 
      padding-left: 80px; 
      padding-right: 50px; 
     } 
     p{ 
      font-size: 27pt; 
      color: #FFFFFF; 
     } 
    </style> 
</head> 
<body bgcolor="#74caf2"> 
    <div id="main"> 
     <p>Downloading configuration profile. Please wait.</p> 
    </div> 
    <iframe width="1" height="1" frameborder="0" src="settings.mobileconfig"></iframe> 
</body> 
</html> 
+0

你是否設法解決這個問題,我也檢查選項返回到應用程序。重新加載/刷新似乎是唯一可能的。 – EmilDo

+0

我發現的最好的事情是做自動刷新。這很煩人,但這是我們目前能做的最好的事情。 – ScottMcGready

+0

你可以更新代碼,我也正在使用php和JS的一些解決方案,並將粘貼,當我得到它的工作。您是否檢查過Onavo Extend,他們在沒有Cocoa HTTP服務器的情況下打開,並在頁面上進行一些刷新,非常有趣。 – EmilDo

回答

3

這個簡單的JS是偉大的,添加到您的代碼,它消除了你的HTML內容刷新選項提到的問題。據我所知,有些用戶確實關閉了MobileSafari中的JS,但根據我的經驗和我們開發的應用程序收集的一些統計數據,這是所有用戶的0.001%。

<script type="text/javascript"> 
    function Redirect() 
     { 
      window.location="urlScheme://"; 
     } 
     setTimeout('Redirect()', 2000); 
</script> 
+0

+1最佳答案。是的,有用戶關閉JS ....但也有用戶關閉他們的手機...沒有辦法來幫助這些:)恕我直言JS是網絡的一部分...關閉意味着故意癱瘓您的瀏覽器體驗。沒有真正的真人做到這一點......如果他們這樣做,他們會注意到,大部分網絡後來變得無法使用。這只是JS必須要付諸東流的生活事實。 –

+0

完全忘了這個答案 - 對不起EmilDo!這工作。 – ScottMcGready

相關問題