Downloadable Asset: 
Developer Guide Documentation: 
Asset Version: 
1.0.4
Asset Description: 
The Kony Native login component is used to display the Amway ID login page in the native app and authenticate the user using the built-in Kony OAuth capabilities. The component features a built-in user native interface that can be used to launch the login process. This interface can be customized (background image, colors, labels, etc.) as needed or can be entirely disabled if a custom experience is needed.
Details: 

<ul>
<li>Bug Fixes</li>
<li>Documentation update</li>
</ul>
<br/><p><strong>1 Overview</strong></p>

<p>The Kony Native login component is used to display the Amway ID login page in the native app and authenticate the user using the built-in Kony OAuth capabilities.&nbsp; The component has the following capabilities:</p>

<ul>
<li>·<!-- --><strong>B</strong><strong>iometrics&nbsp;</strong><strong>-</strong> Biometric authentication is simply the process of verifying your identity using your measurements or other unique characteristics of your body, then logging you in a service, an app, a device, and so on. The component allows for using biometrics such as TouchID, FaceID, and Fingerprint recognition.&nbsp; It supports the following two modes via configuration:

<ul>
<li>USER PREFERENCE - biometrics can be enabled or disabled by the app user.</li>
<li>NONE - biometrics are not enabled for the app. In this case, the user has to login using credentials every time.</li>
</ul>
</li>
<li><strong>Highly Configurable UI</strong> - the component can be configured to use the built-in user interface, or the user interface can be completely disabled if a custom UI is needed.</li>
</ul>

<p>The component features a built-in user native interface that can be used to launch the login process.&nbsp; This interface can be customized (background image, colors, labels, etc.) as needed or can be <a href="#WebLogin-disable-ui">entirely disabled</a> if a custom experience is needed.</p>

<p><strong>2 Application Security</strong></p>

<p>For enhanced security,&nbsp;Quantum&nbsp;provides strong application protection solutions by using anti-tampering mechanisms, White-Box Cryptography&nbsp;(WBC), Cryptography, and Encryption APIs, and also can secure network communications. Following are two methods you can use to enhance security in your application.</p>

<p><strong>Note: In order to use this component and interface with Amway ID securely, your application is required to implement the following security protections. Failure to do so may result in vulnerabilities that could require your app to be shut down in production.</strong></p>

<p><strong>2.1 Public Key Pinning</strong></p>

<p class="rteindent1"><strong>SSL Pinning</strong></p>

<p class="rteindent1">SSL Pinning is the process of associating a host with their expected X509 certificate or a public key. Once a host's certificate or public key is known or identified, the certificate or public key is associated or 'pinned' to the host. This offers protection against certificate forgery.</p>

<p>To enable the Public Key Pinning feature for a&nbsp;Quantum Visualizer&nbsp;Application, For more information on, click <a href="https://docs.kony.com/konylibrary/visualizer/visualizer_user_guide/conte...

<p><strong>2.2 Protected Mode option</strong></p>

<p>Applications built in&nbsp;Quantum Visualizer&nbsp;can use the additional security enhancements by building the application in the&nbsp;Protected Mode.&nbsp;Quantum Visualizer Platform code for iOS and Android is equipped with mechanisms that can protect your application by detecting attacks like tampering, swizzling, debugging, jailbreaking (iOS), rooting (Android), and information disclosure. Additional security mechanisms are provided through the use of White-Box Cryptography to protect application business logic and source code. Application reacts to the attack by exiting upon detecting attacks to prevent further attempts.</p>

<p>For more information on how to implement, please click <a href="https://docs.kony.com/konylibrary/visualizer/visualizer_user_guide/conte...

<p><strong>3&nbsp;Getting Started with the&nbsp;AmwayID Login&nbsp;component</strong></p>

<p>This is a Getting Started section for the&nbsp;AmwayID Login. It contains information about importing and running the component.</p>

<p>For information about the&nbsp;Dynamic Usage, Properties, Events, and APIs of the component, you can visit the&nbsp;Reference Section.</p>

<p>Before you start using the&nbsp;nativeLogin&nbsp;component, make sure that you meet all the requirements in the&nbsp;Prerequisites.</p>

<p><strong>4 Prerequisites</strong></p>

<ul>
<li>A&nbsp;<a href="https://manage.kony.com/" target="_blank">Kony account</a></li>
<li>Kony Visualizer V8 SP4, or higher</li>
<li>Create a Client App at AmwayID</li>
<li>Create Identity Service</li>
</ul>

<p><strong>4.1 Source Code</strong></p>

<p>The component source can be found at&nbsp;<a href="https://github.com/AmwayACS/AmwayIDNativeLogin">https://github.com/Amway...

<p><strong>4.2 Create Identity Service</strong></p>

<p>The Kony framework has built-in support for authentication using OpenID Connect / OAuth2 which means that there is minimal code you need to write to support login into your application.</p>

<p>To do so, you need to configure an Identity Service, which will be used by the component to integrate with Amway ID via OpenID Connect.&nbsp; Follow the steps below to configure the Kony framework.</p>

<p><strong>Create a New Identity Service</strong></p>

<p>Open the&nbsp;<strong>Configure Services</strong> tab and choose the&nbsp;<strong>Identity</strong> screen.&nbsp; Click the&nbsp;<strong>Configure New&nbsp;</strong>button.</p>

<p>Enter a name for your identity service and select the&nbsp;<strong>Type of Identity</strong> dropdown.&nbsp; In the dialog that opens, choose&nbsp;<strong>OAuth 2.0</strong>.</p>

<p>This will open a screen allowing you to provide the needed configuration details.&nbsp; Follow the instructions in the table below.</p>

<p><strong>Provider Details</strong></p>

<p class="rteindent1"><strong>Grant Type</strong>: Use Password</p>

<p class="rteindent1"><strong>Authorize Endpoint</strong>: Varies per environment.&nbsp; Can be generated with the&nbsp;<a href="http://jira.amway.com:8444/display/GIW/OIDC+Application+Tool">OIDC Application Tool</a>.</p>

<p class="rteindent1"><strong>Token Endpoint</strong>: Varies per environment.&nbsp; Can be generated with the&nbsp;<a href="http://jira.amway.com:8444/display/GIW/OIDC+Application+Tool">OIDC Application Tool</a>.</p>

<p class="rteindent1"><strong>Callback URL</strong>: This will be set by the Kony framework for your application.</p>

<p class="rteindent1"><strong>Scope</strong>: This will depend on what data you need in your tokens and what services your app will use.&nbsp; See&nbsp;<a href="http://jira.amway.com:8444/display/GIW/Token+Enrichment">Token Enrichment</a>.</p>

<p class="rteindent1"><strong>Logout URL</strong>: Varies per environment.&nbsp; See&nbsp;<a href="http://jira.amway.com:8444/display/GIW/Logout">Logout</a>.</p>

<p class="rteindent1"><strong>Revoke URL</strong>: Varies per environment.&nbsp; Can be generated with the&nbsp;<a href="http://jira.amway.com:8444/display/GIW/OIDC+Application+Tool">OIDC Application Tool</a>.</p>

<p><strong>Client Details</strong></p>

<p class="rteindent1"><strong>Client ID:&nbsp;</strong><em>The value will be provided to you by the Amway ID Team</em></p>

<p class="rteindent1"><strong>Client Secret:&nbsp;</strong><em>The value will be provided to you by the Amway ID Team</em></p>

<p><strong>Advanced</strong></p>

<p>Choose the Additional Parameters and click on "Add" button.</p>

<p>Define&nbsp;amw_clientapp,amw_cancelredirect params as per below.&nbsp;</p>

<p><strong>Note: </strong>amw_cancelredirect URL has to be whitelisted as part of your client app policy.</p>

<p><strong>4.3 Identity Service Configuration</strong></p>

<p>You need to configure an Identity session configuration that will be used for session idle time out and adding security attributes as part of identity response. Follow the steps below to configure in the Kony framework.</p>

<p>Open the&nbsp;<strong>Configure Services</strong>&nbsp;tab and choose the&nbsp;<strong>Identity</strong>&nbsp;screen.&nbsp; Click the&nbsp;<strong>Service Configuration&nbsp;</strong>button.</p>

<p>This will open a screen allowing you to provide the needed configuration details.&nbsp; Follow the instructions in the table below.</p>

<p>Provide idle session time and maximum session durations as per your requirement and select the checkbox for&nbsp;Allow Clients to Access Secure Attributes.</p>

<p><strong>4.4 Android</strong></p>

<ul>
<li>USE_FINGERPRINT.</li>
<li>Deep link URL schema</li>
</ul>

<p>Refer to the&nbsp;<a href="#_Overview">Configuring Native Settings (Android)&nbsp;</a>section for more information.</p>

<p><strong>4.5 iOS</strong></p>

<ul>
<li>Camera Permissions.</li>
<li>Face ID Permissions</li>
</ul>

<p>Refer to the&nbsp;<a href="#_Providing_Camera_and">Configuring Native Settings (iOS)</a>&nbsp;section for more information.</p>

<p>After you make sure that you meet all the prerequisites, you can expand any of the following drop downs to get details about each step of getting started with the Component.</p>

<p><strong>5 Importing the Component</strong></p>

<p>Before you start importing the component to Kony Visualizer, you must download the component from the&nbsp;Amway Marketplace&nbsp;website. You can import the marketplace components only into the apps that are of the Kony Reference Architecture type.</p>

<p>To import the AmwayID Login component, do the following:</p>

<ol>
<li>Open your app project in Kony Visualizer.</li>
<li>On the&nbsp;File&nbsp;menu, point to&nbsp;Import, and click&nbsp;Component to Library. The&nbsp;Open&nbsp;dialog appears.</li>
<li>Navigate to the location where you downloaded the component (zip file) on your computer, select the component, and click&nbsp;Open. After Visualizer downloads the component, it opens a window that asks you to enter the metadata for the component.</li>
</ol>

<p>Enter a&nbsp;<strong>Library Name</strong>, a&nbsp;<strong>Collection Name</strong>, and a&nbsp;<strong>Description</strong>&nbsp;if you require one.</p>

<ul>
<li><strong>Library Name</strong>&nbsp;- A Library contains component collections and skins. The Library Name specifies the library that you want to import the component into. If the library does not exist, Visualizer will create a new one.<br />
As an example, let us name the Library as&nbsp;<strong>AmwayID</strong>.</li>
<li><strong>Collection Name</strong>&nbsp;- A collection contains multiple components. The Collection Name specifies the collection that you want to import the component into. If the collection does not exist in the specified library, Visualizer will create a new one.<br />
As an example, let us name the Collection as&nbsp;<strong>Login</strong>.</li>
<li><strong>Component Name</strong>&nbsp;- This name specifies the display name you want to use for the component in Visualizer.<br />
By default, the component name is&nbsp;<strong>com.alticor.NativeLogin</strong>&nbsp;.</li>
<li>After you import the component, you can drag and drop it from the Collection Library onto your form.</li>
<li>Save the form now.</li>
</ul>

<p>After you add the component to a form, you need to configure the native settings of your project. You can refer to the following sections for more information.</p>

<p><strong>5.1 Configuring Component Properties</strong></p>

<p>To configure the Component, you need to perform the following tasks.</p>

<ol>
<li>App Config</li>
</ol>

<p class="rteindent1">Property: Amway ID URL<br />
Syntax: baseURL<br />
Type: Text<br />
Description: Specifies the URL which is used for Forgot password</p>

<p class="rteindent1">Property: Cancel Redirect URL<br />
Syntax: cancelRedirectURL<br />
Type: Text<br />
Description: Specifies app deep link URL for redirection when user clicks on the Cancel button.</p>

<p class="rteindent1">Property: Is Request From Logout<br />
Syntax: isReqFromLogout<br />
Type: Boolean<br />
Description: Need to set if the request is coming from the Logout page.</p>

<p class="rteindent1">Property: App Default Language<br />
Syntax: defaultLocale<br />
Type: List<br />
Description: Define App default language, if your Language is not available in the list, please add in the list and select at component code.</p>

<p class="rteindent1">Property: Country<br />
Syntax: country<br />
Type: List<br />
Description: Define App default Country from List, if your country is not available in the list, please add in the list and select at component code.</p>

<p class="rteindent1">Property: Biometric Login<br />
Syntax: biometricLoginType<br />
Type: List<br />
Description: Define the Biometric login required for your app or not. See section#1 for more information.</p>

<p class="rteindent1">Property: Custom Login UI<br />
Syntax: customLoginUI<br />
Type: Boolean<br />
Description: Configure whether you are using default AmwayID native login or your own custom UI</p>

<p class="rteindent1">Property: Enable Forgot Password<br />
Syntax: forgotPwdVisibility<br />
Type: Boolean<br />
Description: The app would like to show 'Forgot Password' option or not.</p>

<p class="rteindent1">Property: Enable Privacy &amp;Terms of Use<br />
Syntax: privacyAndTermsVisibility<br />
Type: Boolean<br />
Description: The app would like to show the 'Privacy &amp; Security' and 'Terms of Use' option or not.</p>

<p class="rteindent1">2. Identity Config</p>

<p class="rteindent1">Property: Identity Service Name<br />
Syntax: identityServiceID<br />
Type: Text<br />
Description: Specifies the identity service name which we have defined in Fabric server for our app.</p>

<p class="rteindent1">Property: Client App Name<br />
Syntax: clientApp<br />
Type: Text<br />
Description: Specifies the client app name which we have defined in OAuth policy for our app.</p>

<p class="rteindent1">Property: Enable Refresh Token<br />
Syntax: refreshToken<br />
Type: Boolean<br />
Description: Use Refresh Token for sub sequent logins if the token is valid without providing user credentials again. See section#1 for more information.<br />
&nbsp;</p>

<p class="rteindent1">3. UI Config</p>

<p class="rteindent1">Property: Display Login Toggle<br />
Syntax: loginToggleIsVisible<br />
Type: Boolean<br />
Description: Specifies the if you have multiple login buttons based on your app requirement.</p>

<p class="rteindent1">Property: Login ID Type (Tab1)<br />
Syntax: loginBtn1Name<br />
Type: Text<br />
Description: Specifies the Name of Tab1 from above.</p>

<p class="rteindent1">Property: Login ID Type (Tab2)<br />
Syntax: loginBtn2Name<br />
Type: Text<br />
Description: Specifies the Name of Tab2 from above.</p>

<p class="rteindent1">Property: Loading Indicator Skin<br />
Syntax: loadingIndSkin<br />
Type: Text<br />
Description: Assign loading indicator skin as per your app requirement else it will take the default AmwayID login loading indicator</p>

<p class="rteindent1">Property: Request from Logout Action<br />
Syntax: isReqFromLogout<br />
Type: Boolean<br />
Description: This can be set dynamically in the controller to define the request is coming from Logout action or its initial request.</p>

<p><strong>5.2 Configuring Native Settings (iOS)</strong></p>

<p>To configure the native settings for iOS, you need to perform the following tasks.</p>

<ul>
<li>Provide Camera and Face ID Permissions</li>
</ul>

<p>5.2.1.1 Providing Camera and Face ID Permissions</p>

<ol>
<li>From the&nbsp;<strong>Project</strong>&nbsp;explorer, go to&nbsp;<strong>Assets</strong>.</li>
<li>Expand&nbsp;<strong>Media</strong>, right-click&nbsp;<strong>Common</strong>, and then select&nbsp;<strong>Resource Location</strong>.<br />
A file explorer window opens.</li>
<li>Open the&nbsp;<strong>infoplist_configuration.json</strong>&nbsp;file with a text editor or a code editor.</li>
<li>At the end of the file, type the given code . You can change the description based on your preference.</li>
</ol>

<p class="rteindent2">"NSCameraUsageDescription" : "AmwayID uses Camera to enable Face ID for this app.",</p>

<p class="rteindent2">"NSFaceIDUsageDescription" : "AmwayID uses your Face ID to authenticate the app.",</p>

<p class="rteindent1">5. Save the file.</p>

<p><strong>5.3&nbsp;<a href="javascript:void(0);">Configuring Native Settings (Android)</a></strong></p>

<p>To configure the native settings for Android, follow the given steps.</p>

<ol>
<li>From the left navigation menu, click&nbsp;<strong>Project Settings</strong>.</li>
</ol>

<ol>
<li>In the&nbsp;<strong>Project Settings</strong>&nbsp;window, go to&nbsp;<strong>Native</strong>&nbsp;→&nbsp;<strong>Android</strong>.</li>
<li>Scroll down to the&nbsp;<strong>Manifest Permissions, Tags and Gradle Build Entries</strong>&nbsp;section, and then select the USE_FINGERPRINT, select the permission from the left panel and click&nbsp;<strong>Add &gt;</strong>.</li>
</ol>

<p><strong>5.4&nbsp;<a href="javascript:void(0);">Building and Running your app</a></strong></p>

<p>After performing all the above steps, you can perform either of the following tasks:</p>

<p>Build and Publish your app&nbsp;(Visualizer Enterprise)</p>

<p>For more information, you can refer to the&nbsp;<a href="http://docs.kony.com/konylibrary/visualizer/visualizer_user_guide/Defaul... target="_blank">Building and Viewing an Application</a>&nbsp;section of the Visualizer User Guide.</p>

<p><strong>6 Biometric Support</strong></p>

<p>Using biometrics for consumer-facing mobile application authentication is an emerging enterprise imperative that delivers both ease of use and improved security. Biometrics can help organizations overcome the limitations of usernames and passwords and improve user experience and security. Recent advances in the mobile technology landscape, such as the widespread production of smartphones with fingerprint sensors, make biometric authentication an appealing alternative to usernames and passwords.</p>

<p>The Amway ID component supports the use of biometrics including Face ID, Touch ID, and Fingerprint.&nbsp; When enabling using the Amway ID component UI there are 2 modes for biometric support:</p>

<p class="rteindent1"><strong>Mode:&nbsp;</strong>None</p>

<p class="rteindent1"><strong>Description:&nbsp;</strong>The app does not allow the use of biometrics to enter the app.</p>

<p class="rteindent1"><strong>Mode: </strong>USER PREFERENCE</p>

<p class="rteindent1"><strong>Description:&nbsp;</strong>The user can decide whether to enable biometrics to enter the app.</p>

<p>When choosing&nbsp;<strong>User Preference</strong>, this will enable an option on the component's user interface that allows the user to choose whether to require biometrics to login into the app.&nbsp; This selection is dynamic based on the capabilities of the device - if Face ID is supported, then "Enable Face ID" is displayed in the field.&nbsp; If Touch ID is supported, "Enable Touch ID" is displayed.&nbsp;if Fingerprint is supported, then "Enable Fingerprint" is displayed in the field.&nbsp;</p>

<p>The biometric pop-up will appear on the screen and takes user consent to enable Biometric on the device when the user login successfully.</p>

<p>Once the user enables Biometric Login then subsequent calls it automatically authenticates the user with FaceID/TouchID/Fingerprint.</p>

<p><strong>7 APIs</strong></p>

<p><strong>7.1 Callback Events</strong></p>

<p>From the&nbsp;<strong>Properties</strong>&nbsp;panel, navigate to the&nbsp;<strong>Actions</strong>&nbsp;tab. The&nbsp;Actions&nbsp;tab contains a set of events.</p>

<p>You need to associate actions with the following events listed below.</p>

<p class="rteindent1"><strong>onLoginSuccess</strong></p>

<p class="rteindent2"><strong>Description:</strong>&nbsp;Invoked when the component successfully Logged in the user.</p>

<p class="rteindent2"><strong>Syntax:</strong>&nbsp;onLoginSuccess()</p>

<p class="rteindent2"><strong>Example:</strong>&nbsp;this.view.NativeLogin.onLoginSuccess = this.onLoginSuccess;</p>

<p class="rteindent1"><strong>onLoginFailure</strong></p>

<p class="rteindent2"><strong>Description:</strong>&nbsp;Invoked when the user login failed.</p>

<p class="rteindent2"><strong>Syntax:</strong>&nbsp;onLoginFailure()</p>

<p class="rteindent2"><strong>Example:</strong>&nbsp;this.view.NativeLogin.onLoginFailure = this.onLoginFailure;</p>

<p class="rteindent1"><strong>Request from Logout Action</strong></p>

<p class="rteindent2">if(!kony.sdk.isNullOrUndefined(eventobject) &amp;&amp; !kony.sdk.isNullOrUndefined(eventobject.isReqFromLogout)){</p>

<p class="rteindent2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.view.NativeLogin.isReqFromLogout = eventobject.isReqFromLogout;</p>

<p class="rteindent2">&nbsp;&nbsp;&nbsp; }</p>

<p><strong>8 Custom UI</strong></p>

<p>The component can be configured to use the built-in user interface, or the user interface can be completely disabled if a custom UI is needed.</p>

<p>This interface can be customized (background image, colors, labels, etc.) as needed or can be <a href="#WebLogin-disable-ui">entirely disabled</a> if a custom experience is needed.</p>

<p>In this section we will discuss how to customize the User interface and how to integrate with Native Login Component.</p>

<p><strong>8.1 Disable Native Login Component</strong></p>

<p>After importing the component into form, turn off the native login component visibility to implement Customized User Interface.</p>

<p>Click on Component --&gt; Properties Tab --&gt; Look -- &gt; Visible</p>

<p>You need to design your own UI and depends on your requirement you have to implement below methods:</p>

<p><strong>8.2 Enabling Custom UI on Login Component</strong></p>

<p>Turn on Custom UI to implement the Customized UI in the app as below. And for detailed property configurations please see section#<a href="#_Configuring_Component_Properties">Configuring Component Properties</a></p>

<p><strong>8.3 Custom UI API</strong></p>

<p class="rteindent1"><strong>8.3.1 displayErrorMessageOnCustomUI</strong></p>

<p class="rteindent1">This method has to be mapped to display Error message from login.</p>

<p class="rteindent1">Syntax: this.view.NativeLogin.displayErrorMessageOnCustomUI = this.displayErrorMessageOnCustomUI;</p>

<p class="rteindent1"><strong>8.3.2&nbsp;&nbsp;&nbsp;&nbsp;saveCustomUIBiometricData</strong></p>

<p class="rteindent1">Need to write a logic to prepare user credentials to persist in keychain, since its customized UI and AmwayID login component doesn’t know the fields to map while saving user credentials in Keychain.</p>

<p class="rteindent1">Syntax: this.view.NativeLogin.saveCustomUIBiometricData = this.saveCustomUIBiometricData;</p>

<p class="rteindent1"><strong>8.3.3 showCustomUIBiometricOption</strong></p>

<p class="rteindent1">Display the enable/disable Biometric Login for application upon Login success.</p>

<p class="rteindent1">&nbsp;&nbsp;&nbsp; Syntax: this.view.NativeLogin.showCustomUIBiometricOption = this.showCustomUIBiometricOption;</p>

<p class="rteindent1"><strong>8.3.4 showNativeLoginUI</strong></p>

<p class="rteindent1">we need to map the method,&nbsp; If in case you are trying to leverage existing feature in default Native Login which is using in app browser.</p>

<p class="rteindent1">Example: Forgot Password.</p>

<p class="rteindent1">&nbsp;&nbsp;&nbsp; Syntax: this.view.NativeLogin.showNativeLoginUI = this.showNativeLoginUI;</p>

<p class="rteindent1"><strong>8.3.5 dismissNativeLoginUI</strong></p>

<p class="rteindent1">This method need to be mapped when we enable native login screen (Ex: section#9.4)</p>

<p class="rteindent1">&nbsp;&nbsp; Syntax:&nbsp; this.view.NativeLogin.dismissNativeLoginUI = this.dismissNativeLoginUI;</p>

<p class="rteindent1"><strong>8.3.6 enableCustomUIBiometricLogin</strong></p>

<p class="rteindent1">Write a logic to enable fields to be enable while Biometric login on Custom UI. Its completely Application level decision to decide which fields should be enable and disable.</p>

<p class="rteindent1">&nbsp;&nbsp; Syntax:&nbsp; this.view.NativeLogin.enableCustomUIBiometricLogin = this.enableCustomUIBiometricLogin;</p>

<p class="rteindent1"><strong>8.3.7 resetLoginForm</strong></p>

<p class="rteindent1">Need to reset the login form whenever or wherever required.</p>

<p class="rteindent1">&nbsp;&nbsp;&nbsp; Syntax: this.view.NativeLogin.resetCustomLoginForm = this.resetLoginForm;</p>

<p class="rteindent1"><strong>8.3.8 setDeviceBiometricType</strong></p>

<p class="rteindent1">Identify the device supported type by invoking Biometric API and set the labels accordingly while displaying the Biometric Login.</p>

<p class="rteindent1">&nbsp;&nbsp; Syntax:&nbsp; this.view.NativeLogin.customSetDeviceBiometricType = this.setDeviceBiometricType;</p>

<p class="rteindent1"><strong>8.3.9 enableAndroidBiometricPopup</strong></p>

<p class="rteindent1">Display the Android Biometric popup with required fields when you invoke the Biometric login as Android platform doesn’t support native biometric UI same like iOS.</p>

<p class="rteindent1">&nbsp;&nbsp; &nbsp;Syntax: this.view.NativeLogin.enableCustomAndroidBiometricPopup = this.enableAndroidBiometricPopup;</p>

<p class="rteindent1"><strong>8.3.10 androidBiometricPopup</strong></p>

<p class="rteindent1">Need to write a logic to display Biometric popup for Android platform as the native OS will not support. Application has to come up with its own design and fields. Based on the Android Biometric Login status we need to enable disable specific fields.</p>

<p class="rteindent1">Syntax: this.view.NativeLogin.displayAndroidPopup = this.androidBiometricPopup;</p>

<p class="rteindent1"><strong>8.3.11 dismissAndroidPopup</strong></p>

<p class="rteindent1">Need to write a logic to dismiss the android popup after biometric login success/failure.</p>

<p class="rteindent1">Syntax: this.view.NativeLogin.closeCustomAndroidPopup = this.dismissAndroidPopup;</p>

<p class="rteindent1">A demo app with Customized UI has been implemented for better understand and implementation. Please find the complete code at <a href="https://github.com/AmwayACS/AmwayIDNativeLogin">https://github.com/Amway...

<p class="rteindent1"><strong>Custom Login Form ID : frmCustomLoginUI</strong></p>

<p><strong>9 External Links</strong></p>

<p>External links will need to be added to the main application and will not be added to the Amway ID component. Documentation for links to Amway ID (create account etc.) can be found <a href="https://jira.amway.com:8444/display/GIW/Integrations">here</a>.</p>

<p>Please find the <strong>confluence</strong> link <a href="https://jira.amway.com:8444/display/GIW/Login+Component">here</a></p>

Supported App Types: 
Supported Devices: 
Supported Platforms: 
Platform Version: 
Asset Requirements: 
Visualizer Enterprise
MobileFabric
Status: 
Approved
Title Approved: 
Title Review: 
Body Approved: 
Body Review: 
Asset Display View Approved: 
Asset Display View Review: 
Detail View Images/Video Approved: 
Detail View Images/Video Review: 
Developers Guide Documentation Approved: 
Developers Guide Documentation Review: 
Additional Notes: 
Asset Review Status: 
Approved
Use iPhone Wrapper: 
Use iFrame: 
Item Guid: 
e8f19b7989224586952090f5fce820d0
Item Kuid: 
u645563e5d4847118b09759022ab2c7f
Is NFI: