Examples¶
Complete integrations for SwiftUI, UIKit, Kotlin, Java, Flutter, and React Native using header-based silent login.
SwiftUI¶
See iOS integration for a full WKWebView SwiftUI component.
UIKit (Swift)¶
import UIKit
import WebKit
class TravelnViewController: UIViewController, WKNavigationDelegate {
let webView = WKWebView(frame: .zero, configuration: {
let c = WKWebViewConfiguration()
c.preferences.javaScriptEnabled = true
c.websiteDataStore = .default()
return c
}())
override func viewDidLoad() {
super.viewDidLoad()
webView.navigationDelegate = self
view.addSubview(webView)
webView.frame = view.bounds
var req = URLRequest(url: URL(string: "https://app.traveln.ai/")!)
req.setValue("Api-Key XYZ", forHTTPHeaderField: "Authorization")
req.setValue("john@example.com", forHTTPHeaderField: "TRAVELN-EMAIL")
req.setValue("+15551234567", forHTTPHeaderField: "TRAVELN-PHONE")
req.setValue("John", forHTTPHeaderField: "TRAVELN-FIRST-NAME")
req.setValue("Doe", forHTTPHeaderField: "TRAVELN-LAST-NAME")
webView.load(req)
}
}
Flutter (pseudocode)¶
// Using webview_flutter, headers can be attached when loading the initial request
// final controller = WebViewController()
// ..setJavaScriptMode(JavaScriptMode.unrestricted)
// ..loadRequest(Uri.parse('https://app.traveln.ai/'), headers: {
// 'Authorization': 'Api-Key XYZ',
// 'TRAVELN-EMAIL': 'john@example.com',
// 'TRAVELN-PHONE': '+15551234567',
// 'TRAVELN-FIRST-NAME': 'John',
// 'TRAVELN-LAST-NAME': 'Doe',
// });
React Native (pseudocode)¶
// Using react-native-webview
// <WebView
// source={{
// uri: "https://app.traveln.ai/",
// headers: {
// Authorization: "Api-Key XYZ",
// "TRAVELN-EMAIL": "john@example.com",
// "TRAVELN-PHONE": "+15551234567",
// "TRAVELN-FIRST-NAME": "John",
// "TRAVELN-LAST-NAME": "Doe",
// },
// }}
// javaScriptEnabled
// />