iOS Framework API References
Initialization Method
GlamAr.initialize(
accessKey: String, // Required - Pass your unique access key for the GlamAR service
debug: Bool? = false, // false by default
bundleIdentifier: String? = Bundle.main.bundleIdentifier, // Bundle.main.bundleIdentifier by default
overrides: GlamAROverrides? = nil,
webView:WKWebView? = nil) //
| Parameters | Type | Description | Options |
|---|---|---|---|
| accessKey | string | Your unique access key for the GlamAR service | Required |
| debug | boolean | A flag to switch between debug and production environments |
|
| bundleIdentifier | string | Identifier is used for parent domain white listing | Default - |
| overrides | GlamAROverrides | Category configurations. Check | Default - |
| webView | WKWebView | Pass a pre-configured WKWebView | Default - |
Post-Initialization Methods
applyBySku
GlamAr.applyBySku(skuId: String);
Load a virtual try-on using applyBySku method and passing the relevant SKU Id.
Return Value: None
| Parameters | Type | Description |
|---|---|---|
| SKU Id | string | A SKU ID. |
applyByCategory
GlamAr.applyByCategory(subcategory: String);
Pass a subcategory (e.g.,
sunglasses,necklace,earrings), which the SDK will use to fetch all corresponding SKUs from the Console’s product inventory.
Return Value: None
| Parameters | Type | Description | Options |
|---|---|---|---|
| subcateogry | string | Pass any compatible subcategory |
|
applyMultipleConfigData
GlamAr.applyMultipleConfigData(skuConfigArray: Any);
Display multiple SKU types at once. The input should be an array of sku configs. Each item can be of diffrent subcategory eg:
sunglasses,caps,earrings, etc.
Return Value: None
| Parameters | Type | Description |
|---|---|---|
| skuConfigArray | object | An Array of SKU Configs |
Following is an example of above skuConfigArray for applyMultipleConfigData.
struct EffectAsset3D: Codable {
let id: String
let url: String
}
struct EnvSettings: Codable {
let useDefaultEnvironment: Bool
}
struct ArEffect: Codable {
let envSettings: EnvSettings
let effectAssets3D: [EffectAsset3D]
}
struct SkuConfig: Codable {
let category: String
let subCategory: String
let status: String
let productName: String?
let productImage: String?
let arEffect: ArEffect
}
// MARK: - Example data
let data: [SkuConfig] = [
SkuConfig(
category: "eyewear",
subCategory: "eyeglasses",
status: "PUBLISHED",
arEffect: ArEffect(
envSettings: EnvSettings(useDefaultEnvironment: true),
effectAssets3D: [
EffectAsset3D(id: "full", url: "VALID-ASSET-URL") // Valid Asset url
]
),
),
SkuConfig(
category: "accessories",
subCategory: "caps",
status: "PUBLISHED",
productName: "Test cap",
productImage: "VALID-ASSET-IMAGE-URL", // Valid image url
arEffect: ArEffect(
envSettings: EnvSettings(useDefaultEnvironment: true),
effectAssets3D: [
EffectAsset3D(id: "full", url: "VALID-ASSET-URL") // Valid Asset url
]
),
)
]
GlamAr.applyMultipleConfigData(data);
Users will see separate tabs for each category type in the SDK UI.
addEventListener
GlamAr.addEventListener(event: String, callback: @escaping (Any?) -> Void);
Adds the listener to the given event name.
Return Value: None
| Parameters | Type | Description |
|---|---|---|
| eventName | string | A Name of specific event or "*" To listen to the all the events. |
| handlerFunction | function | Your handler function that will listen to callback. |
removeEventListener
GlamAr.removeEventListener(event:String);
Removes the given listener for the event name.
Return Value: None
| Parameters | Type | Description |
|---|---|---|
| eventName | string | A Name of specific event or "*" To remove all the events. |
isLoaded
GlamAr.isLoaded();
Returns the status of module loading.
Return Bool:trueif loaded, otherwisefalse
| Parameters | Description |
|---|---|
None | No parameters required. |
open
GlamAr.open(mode: String? = nil, imgURL: String? = nil);
Opens the AR widget.
Return Value: None
| Parameters | Type | Description | Options |
|---|---|---|---|
| mode | string | Opens Live-Tryon, Model/Image-tryon and Model Viewer | modelViewer imgTryOn |
| imgURL | string | Valid image URL | Any valid URL |
-
No parameters: Start Live VTO
GlamAr.open(); -
Model Viewer: Start Model Viewer
GlamAr.open("modelViewer"); -
Image Try-On:
- Opens the image/model selection screen:
GlamAr.open("imgTryOn"); - Opens try-on directly with a specific image:
GlamAr.open("imgTryOn", "url_of_image");
- Opens the image/model selection screen:
Switching Views
-
While in Live or Image mode, calling:
GlamAr.open("modelViewer");will open the model viewer. Calling
GlamAr.open()again returns to the selected Try-On type. -
To switch from Live to Image mode, call:
GlamAr.back();This resets the Try-On session and then call
GlamAr.open()with desired parameter
Note: The SKU must already be applied. If not, the SDK will display an error.
reset
GlamAr.reset();
Removes all the current effects from the canvas.
Return Value: None
| Parameters | Description |
|---|---|
None | No parameters required. |
close
GlamAr.close();
Closes canvas and returns to the main widget page.
Return Value: None
| Parameters | Description |
|---|---|
None | No parameters required. |
snapshot
GlamAr.snapshot();
Takes a snapshot of the current result window. Result of the screen can be get from photo-loaded event in
base64formate.
Return Value: none
| Parameters | Description |
|---|---|
None | No parameters required. |
comparison
GlamAr.comparison(state: String, skus: Any?);
Toggles comparison mode in AR widget.
Return Value: None
Pass a state (i.e, open or close) to toggle between UI and with it 2 SKU ids or Skuconfig of same subcategory say sunglasses or necklace. Diffrent subcategory comparision is not supoorted. The first sku will be shown on the left side and the other one on the right side.
| Parameters | Type | Description | Options |
|---|---|---|---|
| state | string | State to show or hide the UI respectively | "open" "close" |
| skus | string[] | object[] | Provide 2 SKU Ids or 2 SKU json in an array | ["skudID1", "skudID2"] |
GlamAr.comparison("open", ["skudID1", "skudID2"]); // replace skudID1 and skudID2 with two SKU id's
GlamAr.comparison("close"); // When we send close we don't need to send SKUs
Eye PD Measurement Flow
We provide an integrated supports for eye pupillary distance (PD) scanning. This is activated when viewing any eyeware categories. If user wants to show his own UI and use this service we have function GlamAR.eyePD() for that case.
GlamAr.eyePD("start"); // To launch or restart Eye PD flow
GlamAr.eyePD("close"); // To exit Eye PD and return to active Try-On
Events
The GlamAR SDK emits various events throughout its lifecycle to help you monitor state, respond to user actions, and handle success or failure cases.
GlamAr.addEventListener(event: "sku-applied") { (callbackValue) in
print("sku-applied: \(callbackValue ?? "")")
}
GlamAr.addEventListener(event: "sku-failed") { (callbackValue) in
print("sku-failed: \(callbackValue ?? "")")
}
Check Events Page for event details.