Moa*_*han 6 xcode ios swift sfsafariviewcontroller
当我到达某个页面时,我试图关闭 SFSafariViewController。
但是在用户明确按下“完成”按钮之前,我无法执行此操作。
我想要的是在到达某个页面后立即获取 URL,然后关闭视图控制器。然后我可以使用这个选择其余的
func safariViewControllerDidFinish(_ controller: SFSafariViewController){
// do work here
}
Run Code Online (Sandbox Code Playgroud)
注意:这个问题以前有人问过,但我找不到任何满意的答案
如果您为应用程序注册了 URI 方案,则页面上可能会有一个链接,可将您带回应用程序。那时你将处于
\n\nfunc application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {\nRun Code Online (Sandbox Code Playgroud)\n\n你的AppDelegate,你可以做任何你想做的事。
\n\n\n\n\n\xe2\x80\x9c因为 Safari View Controller 可以访问用户\xe2\x80\x99s\n 凭据,并使用 iCloud 钥匙串在所有设备上同步,\n 登录将变得轻而易举。[\xe2\ x80\xa6] 需要两个步骤。第一个\n是您\xe2\x80\x99使用自己的应用内浏览器的位置,只需提供\n SFSafariViewController 的实例。
\n\n用户完成登录后,第三方 Web 服务将使用您提供的自定义 URL 方案重定向回您的应用,您可以在 AppDelegate\xe2\x80\x98s 中接受该设置。方法。
\n\n从那里您可以检查响应并关闭 SFSafariViewController 的实例,因为您知道身份验证已完成。
\n\n那\xe2\x80\x99就是它。两步。\xe2\x80\x9d
\n
资料来源:http ://asciiwwdc.com/2015/sessions/504#t=1558.026
\n\n请注意,该handleOpenURL方法已被弃用,取而代之的是application:openURL:options:。
小智 2
你不能用SFSafariViewController. 使用 aWKWebView代替并实现WKNavigationDelegate类似的方法optional func webView(_ webView: WKWebView,
didFinish navigation: WKNavigation!),然后读取当前 URL。在此基础上定义你的行动。
您可以使用它来关闭容纳 Web 视图的视图控制器。SFSafariViewController不幸的是,如果您想允许用户访问这些按钮,您将必须构建自己的导航按钮(具有的导航按钮)。您不必提供它们。
| 归档时间: |
|
| 查看次数: |
5769 次 |
| 最近记录: |