This shows you the differences between two versions of the page.
| — |
mobile-integration:ios [2019/08/01 10:04] (current) tjotov created |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== iOS implementation of PEIG API ====== | ||
| + | |||
| + | ===== Description ===== | ||
| + | |||
| + | Integration of PEIG API for iOS platform is implemented by using framework in targeted application. Framework, named as // | ||
| + | |||
| + | It is recommended to use Xcode 6.4 for using PeigApiLib framework. | ||
| + | |||
| + | ===== How integrate PEIG API framework ===== | ||
| + | |||
| + | Framework // | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Framework contains next important classes (public headers): | ||
| + | |||
| + | * PeigApiLib.h - Contains main method for call ADUCID authentication and for another ADUCID operations | ||
| + | * LibServiceDelegate.h - Allow send message to another object, that ADUCID authentication (or another operation) is completed, Success or Failed | ||
| + | * ApiResult.h - Class manages ADUCID authentication result | ||
| + | |||
| + | In the source code, use the following import | ||
| + | |||
| + | <code objc> | ||
| + | # | ||
| + | |||
| + | # | ||
| + | </ | ||
| + | |||
| + | Class LibServiceDelegate has two methods: | ||
| + | |||
| + | <code objc> | ||
| + | -(void) onSuccess: | ||
| + | |||
| + | -(void) onFailed: | ||
| + | </ | ||
| + | |||
| + | ===== How authenticate with PEIG ===== | ||
| + | |||
| + | First, import class: | ||
| + | |||
| + | <code objc> | ||
| + | # | ||
| + | </ | ||
| + | |||
| + | Thereafter call method: | ||
| + | |||
| + | <code objc> | ||
| + | [[PeigApiLib sharedInstance] aducidAuthenticate: | ||
| + | |||
| + | } withDataSourceErrorHandler: | ||
| + | |||
| + | }]; | ||
| + | </ | ||
| + | |||
| + | where: | ||
| + | |||
| + | * url - is NSString, in format < | ||
| + | * delegate - is < | ||
| + | |||
| + | LoginViewController implements LibServiceDelegate and methods: | ||
| + | |||
| + | <code objc> | ||
| + | -(void) onSuccess: | ||
| + | ... | ||
| + | } | ||
| + | |||
| + | -(void) onFailed: | ||
| + | ... | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | See DemoBank application, | ||
| + | |||
| + | ===== Response ApiResult ===== | ||
| + | |||
| + | Your code should evaluate these possible outcomes: | ||
| + | |||
| + | <code objc> | ||
| + | if [result isOK] | ||
| + | </ | ||
| + | |||
| + | Session is authenticated. | ||
| + | |||
| + | <code objc> | ||
| + | else if [result peigNotInstalled] | ||
| + | </ | ||
| + | |||
| + | PEIG is not installed, code | ||
| + | |||
| + | <code objc> | ||
| + | [[PeigApiLib sharedInstance] openAppStoreDetail] | ||
| + | </ | ||
| + | |||
| + | opens ITUNES detail page. | ||
| + | |||
| + | <code objc> | ||
| + | else | ||
| + | </ | ||
| + | |||
| + | other exception / redirect / state. | ||
| + | |||
| + | Custom application errors, authentication failed! | ||
| + | |||
| + | * <code objc> | ||
| + | * <code objc> | ||
| + | * <code objc> | ||
| + | * <code objc> | ||
| + | * <code objc> | ||
| + | |||
| + | See ApiResult class for all details. | ||
| + | |||
| + | ===== Handle result from PEIG ===== | ||
| + | |||
| + | PeigApiLib works with URI scheme. It is important to forward URi request from PEIG to PeigApiLib. Please, see class THAppDelegate in DemoBank application. | ||
| + | |||
| + | <code objc> | ||
| + | - (BOOL)application: | ||
| + | |||
| + | { | ||
| + | |||
| + | [[PeigApiLibsharedInstance]handleOpenURL: | ||
| + | |||
| + | returnYES; | ||
| + | |||
| + | } | ||
| + | </ | ||
| + | |||
| + | Method handleOpenURL is defined in protocol class **UIApplicationDelegate**. | ||
| + | |||
| + | ===== Retrieving data when it is authenticated ===== | ||
| + | |||
| + | In case ApiResult is “OK” and mobile application is authenticated, | ||
| + | |||
| + | You can use GET or POST operations. See PeigApiLib class. | ||
| + | |||
| + | <code objc> | ||
| + | - (void) getAducidOperation: | ||
| + | |||
| + | - (void) postAducidOperation: | ||
| + | </ | ||
| + | |||
| + | **url** | ||
| + | |||
| + | **params** | ||
| + | |||
| + | **delegate** | ||
| + | |||
| + | Please, have a look at class PaymentViewController in DemoBank application. There is the example how to use POST request. | ||
| + | |||
| + | ==== Try to get data if it is not authenticated ==== | ||
| + | |||
| + | Check your setup, test if you get error response from the server. | ||
| + | |||
| + | ===== How PEIG starts mobile application ===== | ||
| + | |||
| + | PEIG sends response back to mobile application via URI scheme. Please, define URI scheme for your mobile application in // | ||
| + | |||
| + | {{: | ||
| + | |||