QuickStart
Sample app boilerplate
The following app demonstrates an example of using the WiFi SDK (and the Location SDK).
The app is ready to run but you have to set your own credentials by putting them into plist file. To test the WiFi section, based on Passpoint, you have to use a physical iOS device and have an access point configured in a Cloud4Wi account.
Installation
CocoaPods
Add pod 'c4w-wifi-sdk'
to your Podfile
and run pod install
.
Swift Package Manager
https://github.com/Cloud4Wi-Create/iOS-WifiSDK-SwiftPackage
Configuration
In order to connect SDK to your Cloud4Wi account, you have to specify 'clientKey' and 'clientSecret'.
You can set them in your App Info.plist file by adding two following keys:
<key>com_cloud4wi_sdk_wifi_api_client_key</key>
<string>{CLIENT-KEY-VALUE}</string>
<key>com_cloud4wi_sdk_wifi_api_client_secret</key>
<string>{CLIENT-SECRET-VALUE}</string>
Required Capabilities
In order to use the SDK you have to add the 'Hotspot Configuration' capability to your application

Usage example
This example represents the following use-case:
Read the list of organization policies (the term "policies" is used to refer to consents and agreements that are configured on the Cloud4Wi account)
Creating new customer
Verifying customer credentials in API by retrieving customer info (optional)
Create WPA2-Enterprise Wi-Fi profile on iOS device
let cloud4WiSDKWiFi = Cloud4WiSDKWiFi.init()
var error: NSError? = nil
// Policies
cloud4WiSDKWiFi.getListOfPolicies { (policies) in
if let policies = policies {
var approvedPolicies: Dictionary = [String: String]()
for policy in policies {
approvedPolicies[policy] = "true"
}
let customer = Customer()
customer?.firstName = "John"
customer?.lastName = "Red"
customer?.email = "[email protected]"
customer?.policies = approvedPolicies
cloud4WiSDKWiFi.createCustomer(customer, deduplicate: "email") { (customerResponse) in
if let customerResponse = customerResponse {
print("INFO: Customer successfully created")
cloud4WiSDKWiFi.getCustomerInfo(customerResponse.username, password: customerResponse.password) { (info) in
print("INFO: Customer with provided credentials exists")
if let username = customerResponse.username, let password = customerResponse.password {
self.createCertificateWithUser(username, andPassword: password, andMobileSDK: cloud4WiSDKWiFi, success: success)
}
} onError: { (error) in
if let error = error {
DispatchQueue.main.async {
print("ERROR. Cannot check credentials:")
success(false)
}
return
}
}
} else {
DispatchQueue.main.async {
print("No customerResponse found")
success(false)
}
return
}
} onError: { (error) in
if let error = error as NSError? {
DispatchQueue.main.async {
print("ERROR. Cannot create customer")
success(false)
}
return
}
}
} else {
DispatchQueue.main.async {
print("No policies found")
success(false)
}
return
}
} onError: { (error) in
DispatchQueue.main.async {
if let error = error {
print("ERROR. get list of policies")
success(false)
}
return
}
}
Keep the customer update
To track the last seen date of the customer and to keep always updated the remote push notification token (if applicable) it is necessary to call the method every time the app starts
func initC4w(pushToken: String)
you can put it into didFinishLaunchingWithOptions
for example
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
let cloud4WiSDKWiFi = Cloud4WiSDKWiFi.init()
cloud4WiSDKWiFi.initC4w("remote_push_token")
}
Last updated
Was this helpful?