我有一个允许用户安装配置文件的应用。我这样做是通过在视图控制器上显示一个按钮,在单击时显示一个非常基本的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>
答案 0 :(得分:3)
这个简单的JS非常适合添加到您的代码中,它消除了您在html中使用content-refresh选项提到的问题。我知道有些用户确实关闭了mobileSafari中的JS,但根据我的经验以及我们从开发的应用程序收集的一些统计数据,这是所有用户的0.001%。
<script type="text/javascript">
function Redirect()
{
window.location="urlScheme://";
}
setTimeout('Redirect()', 2000);
</script>