Índice
Objetivo
O fluxo de login integrado no SDK serve para facilitar a construção de aplicativos na plataforma fluig, provendo um meio de efetuar login sem explicitamente programar todas as etapas necessárias.
Integração
Para integrar o login no seu aplicativo, siga os seguintes passos:
- Certifique-se que o fluigSDKFlows.framework do SDK foi adicionado como dependência no seu projeto.
- Altere o fluxo do aplicativo para o login, seguindo os passos abaixo.
Na AppDelegate do seu projeto, chame o método startAsRoot da classe LoginFlow. Para instanciar LoginFlow, passe uma instância de LoginFlowConfiguration como único parâmetro. A classe LoginFlowConfiguration é responsável principalmente pela personalização do fluxo de login. Todos os parâmetros de LoginFlowConfiguration são opcionais. Um dos parâmetros possíveis é onSuccessReplaceRootWith que é um UIViewController para o qual deseja que o login redirecione após sua conclusão. Ao terminar o fluxo, caso esse parâmetro não tenha sido fornecido, será enviado uma Notification informando que o usuário conseguiu se logar com sucesso.
import UIKit
import fluigSDKFlows
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let viewController = MyAppViewController()
window = UIWindow(frame: UIScreen.main.bounds)
window?.makeKeyAndVisible()
window?.rootViewController = viewController
let configuration = LoginFlowConfiguration(onSuccessReplaceRootWith: viewController)
LoginFlow(configuration: configuration).startAsRoot(window: window!)
return true
}
}
Adicione o fluigSDKCore.framework, fluigSDKUi.framework e fluigSDKFlows.framework ao seu projeto no Xcode.
Configuração
Edite seu AppDelegate.swift da seguinte forma:
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
self.window = UIWindow(frame: UIScreen.main.bounds)
let viewcontroller = ViewController()
self.window?.rootViewController = viewcontroller
let tips = ["fluig SDK iOS", "second tip", "third tip"]
let conf = LoginFlowConfiguration(
backgroundVideoUrl: Bundle.main.url(forResource: "backgroundLogin", withExtension: "mp4"),
emailRequestPageTips: tips,
passwordRequestPageTips: tips,
onSuccessReplaceRootWith: viewcontroller
)
LoginFlow(configuration: conf).startAsRoot(window: self.window!)
self.window?.makeKeyAndVisible()
return true
}
É possível personalizar este fluxo instanciando um objeto da classe LoginFlowConfiguration.
/// - parameters:
/// - logoImage: The image to be used as a logo on login screens.
/// - backgroundVideoUrl: The url of the video to be used as the background on login screens.
///This takes precedence over `backgroundImageUrl`
/// - backgroundImage: The image to be userd as background on login screens.
/// - gradiendStartColor: The color to be used on login screens background.
/// - gradiendEndColor: Composes with `gradientStartColor` to form a gradient to be used on login
///screens background.
/// - emailRequestPageTips: If informed show a pager with tips to be shown on email request login screen
/// passwordRequestPageTips: If informed show a pager with tips to be shown on password request login screen
/// - onSuccessReplaceRootWith: If informed is used to replace the application root ViewController
///on successfull login, otherwise a notification is sent via NotificationCenter.
public init(logoImage: UIImage? = nil,
backgroundVideoUrl: URL? = nil,
backgroundImage: UIImage? = nil,
gradientStartColor: UIColor = UIColor.fluigSdk.pink,
gradientEndColor: UIColor = UIColor.fluigSdk.lightOrange,
emailRequestPageTips: [String] = [],
passwordRequestPageTips: [String] = [],
onSuccessReplaceRootWith: UIViewController? = nil) {
self.logoImage = logoImage
self.backgroundVideoUrl = backgroundVideoUrl
self.backgroundImage = backgroundImage
self.gradientStartColor = gradientStartColor
self.gradientEndColor = gradientEndColor
self.emailRequestPageTips = emailRequestPageTips
self.passwordRequestPageTips = passwordRequestPageTips
self.onSuccessReplaceRootWith = onSuccessReplaceRootWith
}
Safe ID
Para o botão Abrir Safe ID funcionar corretamente no arquivo *.plist do seu aplicativo adicione um array com a chave LSApplicationQueriesSchemes e um item do tipo String com o valor safeid.