Developer

Getting Started with Conversation Manager for iOS

Requirements

See the SAP Product Availability Matrix (PAM) https://support.sap.com/release-upgrade-maintenance/pam.htmlInformation published on SAP site for the complete list of requirements. Click the Mobile link at the top of the page. Scroll to find the appropriate product and version in the product list. Access to PAM requires an SAP Service Marketplace login: http://service.sap.com/request-userInformation published on SAP site

Installing the Libraries

Beginning with SAP Mobile Platform SDK version SP08, a CocoaPod master spec file is provided which automatically sets up the project dependencies.

If you do not use the CocoaPod master spec file to set up the project, you must manually add the libraries to your project: after installing the SAP Mobile Platform SDK for iOS and the libraries and resources are extracted, locate and add these libraries, which is usually enough to write your first Conversation Manager based app:
  • libHTTPConversation.a
  • libHTTPConvAuthFlows.a
  • libMobilePlace.a
  • libE2ETrace2.a
  • libSupportability.a
  • libPerformanceLib.a
  • (iOS) Foundation.framework
  • (iOS) UIKit.framework
  • (iOS) CoreGraphics.framework
  • (iOS) libsqlite3.dylib (required by libSupportability)
  • (iOS) Security.framework

Architecture

  • Exposed protocols:
    • RequestFilterProtocol defines the delegate which is called before a request is triggered; this allows modification of the request (adding request header, set POST body, and so on) prior to execution.
    • ResponseFilterProtocol defines the delegate which is called after a request is triggered; this allows modification of the NSURLResponse and the response data before it reaches the request executor.
    • ChallengeFilterProtocol defines the interface for the ChallengeFilter delegate, which is called whenever authentication is required for request execution.
    • ManagerConfiguratorProtocol defines the interface for holding a view controller reference which can be used by filters to display views with additional information on top of it.

      Filters are basically providers that communicate with conversation manager values such as user credentials; there are various types of filters: authentication challenge filters, configuration filters, and response filters.

    • RedirectWhitelistProtocol defines the interface for a class that handles redirects; it is called whenever a redirect to a new URL is going to occur.
  • Public interfaces:
    • HttpConversationManager request execution manager class, supports request, response, and challenge filtering.
    • HttpConversationObserverProtocol defines the HttpConversationObserver interface. Observers are notified when a specific event occurs.
    • SupportabilityUploader SupportabilityUploader implementation, used by E2ETrace and ClientLog uploading.
  • Categories:
    • NSURLResponse+HttpConversation extension that adds batch response handling support.
    • NSMutableURLRequest+HttpConversation extension that adds batch response handling support.