Javascript 从iOS应用程序中返回焦点/任务切换到Safari

Javascript 从iOS应用程序中返回焦点/任务切换到Safari,javascript,ios,objective-c,safari,Javascript,Ios,Objective C,Safari,我认为,对于移动web应用程序,我们有一组非常不寻常的需求。我们希望能够实现以下流程: 用户使用我们的web应用程序执行某些任务(web应用程序也用于桌面) 它们执行的操作要求将控制权传递给本机iOS应用程序,以便与某些硬件通信(我们将为此使用URI处理程序) 本机iOS应用程序完成其工作(可能与自己的后端通信),并最终完成其过程 我们希望将控制权从iOS应用程序传递回我们的web应用程序 现在,在我看来,我们有几个选择: 我们在safari中使用类似于[[UIApplication sha

我认为,对于移动web应用程序,我们有一组非常不寻常的需求。我们希望能够实现以下流程:

  • 用户使用我们的web应用程序执行某些任务(web应用程序也用于桌面)
  • 它们执行的操作要求将控制权传递给本机iOS应用程序,以便与某些硬件通信(我们将为此使用URI处理程序)
  • 本机iOS应用程序完成其工作(可能与自己的后端通信),并最终完成其过程
  • 我们希望将控制权从iOS应用程序传递回我们的web应用程序
现在,在我看来,我们有几个选择:

  • 我们在safari中使用类似于
    [[UIApplication sharedApplication]openURL:url]
    • 然后,新选项卡可以“以某种方式”(localstorage?)与旧选项卡通信,并让旧选项卡自行关闭
    • 同样,但新标签会自动关闭,我们依赖旧标签作为“最后一个焦点”
  • 我们让用户自己将控制权切换回我们的web应用程序
  • 还有一种方法可以在不打开新选项卡的情况下将控件“切换”回safari
  • 显然(3)是我们的首选选项,但我无法确定公共API的任何方式来允许这种情况发生。让人稍感困惑的是,iOS 7上的safari和google地图似乎让您可以做到这一点。你可以:

    • 谷歌搜索地址
    • 单击出现的地图,打开谷歌地图
    • 谷歌地图在应用程序顶部显示“返回safari”栏
    • 单击该按钮可将焦点转移回safari,而不会出现打开新选项卡的情况
    这里有我遗漏的东西吗

    干杯。

    +1虽然这很相似,但我同意你的看法,谷歌地图应用程序确实做到了这一点。