我们的团队正在构建一个iOS应用程序,该应用程序链接到Safari以处理慈善捐赠流程。在iOS 8中,我们可以通过将document.location设置为应用程序的自定义URL方案(例如myappscheme://捐赠/成功)将用户返回到应用程序,并且一切都可以正常运行。
在iOS 9中,Apple似乎收紧了他们的安全模型,在Safari中运行自定义URL方案时显示弹出对话框 - 这允许用户点击"取消"而不是[后退]链接到应用程序。
我的问题是,鉴于iOS 9现在有一个"<回到[app]" Safari标题中的按钮 - 有没有办法点击'通过JavaScript链接,而不是诉诸自定义方案,或Apple的新通用链接机制?
实际上点击"返回[app]"因为它使Safari向右滑动(与Safari现在从右侧滑入的方式相反),而不是"重新打开"我们的应用程序,就像点击" OK"在弹出对话框中。它也会阻止iOS推出一个"回到Safari"链接在我们的应用程序的左上角,当我们的应用程序通过通用链接或自定义架构打开时会发生这种情况。
答案 0 :(得分:1)
你不能,或者至少Apple不想要你。他们已经精确地实现了这种机制,以避免这种自动飞回我的应用程序方案。如果使用SDK有任何记录的方法,那将导致安全问题。
但是,在iOS 9中,有一种新的方法可以做到这一点,它涉及在应用程序内直接在Safari视图控制器(SFSafariViewController
)中托管Web内容。通过这种方式,您可以获得Safari的所有好处(用户体验,共享Cookie等)和用户仍然在您的应用中(她可以通过点击“完成”按钮关闭Safari视图屏幕右上角。)