我有一个允许用户安装配置文件的应用程序。我通过在视图控制器上显示一个按钮来实现此目的,单击该按钮时,会显示一个非常基本的 HTML 页面(使用Cocoa HTTP Server),该页面具有一个 iframe,它将打开 .mobileconfig 文件并允许用户安装它。用户安装配置文件(或者实际上取消安装)后,iOS 会自动将用户切换回 safari 应用程序。我已经设置了自定义 URL 方案,效果非常好。
我想做的是在用户安装配置文件后自动将用户重定向回应用程序。我认为解决这个问题的最佳方法是http-equiv="refresh"元标记,但似乎只有在用户在刷新时间内完成设置时才会重定向用户(如果这有意义的话)。
例如,如果我能够安装配置文件并在 3 秒内切换回 Safari,那么它就可以工作。如果我花费 5 秒或更长时间来安装配置文件,我将不会被重定向。元刷新计时器似乎在后台运行,如果 Safari 不在前台,它就不会执行此操作。
我的问题是,一旦安装了配置文件,无论需要多长时间,如何自动将用户重定向回我的应用程序?我曾尝试过使用 javascript,但由于你可以在 iPhone 中关闭它,所以我不想使用它。
索引.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>
Run Code Online (Sandbox Code Playgroud)
这个简单的 JS 非常适合添加到您的代码中,它消除了您在 html 中提到的内容刷新选项的问题。我知道有些用户确实会关闭 mobileSafari 中的 JS,但根据我的经验和我们从我开发的应用程序中收集的一些统计数据,这一比例占所有用户的 0.001%。
<script type="text/javascript">
function Redirect()
{
window.location="urlScheme://";
}
setTimeout('Redirect()', 2000);
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4116 次 |
| 最近记录: |