iOS Webview Integration
When developing an app in iOS that includes a WKWebView
component, a few additional steps are needed to ensure that the social login functions properly.
The iOS WKWebView
component provides a subset of the functionality of the iOS
Safari browser, and provides a means to navigate to and control a web page. The
WKWebView
's behavior deviates from regular browsers in the way that it manages
popup windows.
The WKWebView
component's management of popup windows is not the same as typical browsers such that a popup window is loaded in place of the current document. Rather than opening a popup in a separate window, the WKWebView
replaces the current page with the popup content, while not retaining an 'opener' link to the original page.
Viafoura's social login process requires a popup window to manage the authentication process with the appropriate social network. Once the social network has authorized a user's credentials, the popup window is closed, and the originating site will now be logged into Viafoura.
Implementation
This document and supporting repository will provide you with clean steps on implementation.
Please review iOS-Webview-sample/iOS-Webview-sample/ViewController.swift
for a sample implementation which enables Viafoura social login.
The WKWebView
's controller must:
- Implement the
WKUIDelegate
andWKNavigationDelegate
protocols - Implement
webViewDidClose
to allow popups to close - Implement
func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures)
and open a new webview as a subview for URLs at
"https://auth.viafoura.io"
Notes
The implementation of Viafoura's tools in a
WKWebView
can be difficult.
Contact our support team at [email protected] for more information and assistance.
Updated 7 months ago