【发布时间】:2010-12-13 06:02:43
【问题描述】:
很容易注册一个自定义协议处理程序,以便通过 Safari 中的 URL 启动本机应用程序。但是,这样做会使当前浏览器窗口保持打开状态。如果应用程序随后提供返回 URL 的链接(通过 openURL),则该 URL 将在新的 Safari 窗口中打开,而忽略现有窗口。我在这里问了一个关于在同一个窗口中加载的问题,有人建议使用#anchor 标签来区分内容但使用相同的 url 会使 Safari 混淆为重用窗口,但事实并非如此。即使 URL 完全相同,包括 #anchor 标记,Safari 也会启动一个新窗口。我的下一个想法是在打开本机应用程序的 url 之前通过 window.close() javascript 关闭窗口。但我无法让它工作。如果我对 url 使用 ajax 调用,它实际上不会启动本机应用程序。如果我使用 window.open(url),它会取消关闭前一个窗口,无论我在调用 window.close() 之前还是之后打开 url。
有人知道在通过 URL 启动本机应用程序之前关闭当前 Safari 窗口的方法吗?
【问题讨论】:
标签: iphone safari window native