Safari meta刷新无法使用我的iphone应用程序

时间:2014-04-19 01:16:57

标签: ios iphone

我有一个允许用户安装配置文件的应用。我这样做是通过在视图控制器上显示一个按钮,在单击时显示一个非常基本的HTML页面(使用Cocoa HTTP Server),该页面有一个iframe,它将打开.mobileconfig文件并允许用户安装它。在用户安装配置文件(或实际上取消安装)后,iOS会自动将用户切换回safari应用程序。我设置了自定义网址方案,效果很好。

我想要做的是在用户安装配置文件后自动将用户重定向回应用。我认为最好的解决方法是http-equiv="refresh"元标记,但是如果它们在刷新时间内完成设置(如果有意义的话),它似乎只会重定向用户。

例如,如果我能够安装配置文件并在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>

1 个答案:

答案 0 :(得分:3)

这个简单的JS非常适合添加到您的代码中,它消除了您在html中使用content-refresh选项提到的问题。我知道有些用户确实关闭了mobileSafari中的JS,但根据我的经验以及我们从开发的应用程序收集的一些统计数据,这是所有用户的0.001%。

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