当我到达某个页面时,我试图关闭 SFSafariViewController。
但在明确按下“完成”按钮之前我无法执行此操作
由用户。
我想要的是在到达某个页面时立即获取 URL,然后关闭视图控制器。
然后我可以用这个选择剩下的
func safariViewControllerDidFinish(_ controller: SFSafariViewController){
// do work here
}
注意:这个问题之前已经被问过,但我找不到任何
满意的答复
如果您为应用程序注册 URI 方案,则页面上可能会有一个链接,可带您返回应用程序。那时你将处于
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
你的AppDelegate,你可以做任何你想做的事。
“因为 Safari View Controller 可以访问用户的
凭证,通过 iCloud 钥匙串在所有设备上同步,
登录将变得轻而易举。[…]需要两个步骤。首先
是您使用自己的应用内浏览器的地方,只需提供一个
SFSafariViewController 的实例。
一旦用户完成登录,第三方网站
服务使用您设置的自定义 URL 方案重定向回您的应用程序
喂了它,你可以在你的AppDelegate的handleOpenURL中接受它
方法。
从那里您可以检查响应并驳回实例
SFSafariViewController 因为你知道身份验证是
完毕。
就是这样。两步。”
Source: http://asciiwwdc.com/2015/sessions/504#t=1558.026 http://asciiwwdc.com/2015/sessions/504#t=1558.026
请注意handleOpenURL
方法已被弃用,有利于application:openURL:options:
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)