【发布时间】:2014-04-19 01:16:56
【问题描述】:
我有一个允许用户安装配置文件的应用。我通过在视图控制器上显示一个按钮来执行此操作,单击该按钮时会显示一个非常基本的 HTML 页面(使用Cocoa HTTP Server),该页面有一个 iframe,它将打开 .mobileconfig 文件并允许用户安装它。在用户安装配置文件(或者实际上是取消安装)后,iOS 会自动将用户切换回 safari 应用程序。我已经设置了自定义 URL 方案并且效果很好。
我想做的是在用户安装配置文件后自动将用户重定向回应用程序。我认为解决此问题的最佳方法是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>
【问题讨论】:
-
您是否设法解决了这个问题,我也在检查返回应用程序的选项。并且重新加载/刷新似乎是唯一可能的。
-
我发现最好的办法就是自动刷新。这很烦人,但遗憾的是,这是我们目前能做的最好的事情。
-
你能更新代码吗,我也在用 php 和 JS 开发一些解决方案,当我开始工作时也会粘贴。你有没有检查过 Onavo Extend,它们在没有 Cocoa HTTP 服务器的情况下打开并在页面上做一些刷新,很有趣。
-
没有要更新的代码。这就是完成的文章。
-
使用一个小的 JS 脚本来刷新,代码工作得非常好,并且刷新不会失效,因为它发生在 HTML 中的 contet-refresh 中。你想要脚本吗?