TapTalk.io Documentation
  • Introduction
  • OneTalk Omnichannel Documentation
    • Getting Started with OneTalk
      • Team Members
      • Add Topic
      • Assign Agent to Topic
      • Paid Proactive Chat
    • Channel Integration
      • Telegram Integration
      • WhatsApp SME Integration
      • Instagram DM Integration
      • Facebook Messenger Integration
      • Live Chat Integration (iOS, Android, Web)
        • OneTalk Live Chat for Android
          • Get Started
          • Event Listener
          • Authentication
          • Case & Topic
          • Navigate Live Chat UI
          • Customize UI Appearance
        • OneTalk Live Chat for iOS
          • Get Started
          • Background Process in TapTalk.io Omnichannel iOS
          • Event Delegate
          • Authentication
          • Case & Topic
          • Navigate Live Chat UI
          • Customize UI Appearance
        • OneTalk Live Chat for Web
          • Get Started
          • Callback
          • Method
        • OneTalk Live Chat for React Native
          • Get Started - Android
          • Authentication - Android
          • Get Started - iOS
          • Authentication - iOS
        • OneTalk Live Chat for Flutter
          • Get Started - Android
          • Get Started - iOS
      • Google Business Messages Integration
      • Google Business Profile Integration
      • Tokopedia Integration
    • Integration API
      • Inbox API
      • User/Contact API
    • Live Chat Widget Callback Function
    • Social Channel Button
    • Custom Chatbot Integration
      • Get Started
      • Edit or Delete Chatbot
      • Development
    • QnA via API
    • Webhook
  • PowerTalk Chat SDK Documentation
    • Getting Started with PowerTalk
    • PowerTalk Android
      • Get Started
      • Enable Chat Features
      • Authentication
      • TapUI and TapCore
      • Background Process in TapTalk.io
      • Connection
      • Event Listener
      • Push Notification
      • General
      • User
      • Room List
        • Room List - TapUI
        • Room List - TapCore
      • Chat Room and Messages
        • Chat Room and Messages - TapUI
        • Chat Room and Messages - TapCore
      • Contact
      • Message Type
      • Customize UI Appearance
      • Customize Chat Features
      • Customize Chat Message Bubble
      • Customize Navigation Bar
      • Deep Linking
      • Error Codes
    • PowerTalk iOS
      • Get Started
      • TapUI and TapCore
      • Background Process in TapTalk.io
      • Implement Application Delegate
      • Authentication
      • Connection
      • Event Delegate
      • Push Notification
      • General
      • User
      • Room List
        • Room List - TapUI
        • Room List - TapCore
      • Chat Room and Messages
        • Chat Room and Messages - TapUI
        • Chat Room and Messages - TapCore
      • Contact
      • Message Type
      • Customize UI Appearance
      • Customize Chat Features
      • Customize Chat Message Bubble
      • Customize Navigation Bar
      • Deep Linking
      • Error Codes
    • PowerTalk React Native
      • Get Started - Android
      • Get Started - iOS
    • PowerTalk Flutter
      • Get Started - Android
      • Get Started - iOS
    • Javascript SDK
      • Get Started
      • Authentication
      • Connection
      • General
      • Event Listener
      • User
      • Room List
      • Chat Room
      • Messages
      • Contact
      • Message Type
    • Server API
      • Get Started
      • Base URL
      • Authentication
      • User
      • Contact
      • Message
      • Room
    • Webhook
      • Get Started
      • Webhook Payload
  • MeetTalk SDK Documentation
    • Getting Started with MeetTalk
    • MeetTalk Android
      • Get Started
      • Event Listener
    • MeetTalk iOS
      • Get Started
      • Implement Application Delegate
      • Event Delegate
  • SendTalk API Documentation
    • Introduction
    • Whatsapp Verification
Powered by GitBook
On this page
  • Configure and Initialize TapTalk.io Omnichannel iOS SDK
  • Initialize Google Places API Key (Optional)
  • Open TapTalk.io Omnichannel View

Was this helpful?

  1. OneTalk Omnichannel Documentation
  2. Channel Integration
  3. Live Chat Integration (iOS, Android, Web)
  4. OneTalk Live Chat for iOS

Get Started

PreviousOneTalk Live Chat for iOSNextBackground Process in TapTalk.io Omnichannel iOS

Last updated 28 days ago

Was this helpful?

Before you get started: Make sure you have and obtain the APP_KEY_SECRET.

Configure and Initialize TapTalk.io Omnichannel iOS SDK

Step 1: Install TapTalk.io Omnichannel iOS SDK

  1. You can install the TapTalk.io Omnichannel iOS SDK using like the following. If you are new to CocoaPods, you can see more information in . To create a Podfile, open a terminal window, navigate to your project directory, and then create a Podfile by running the following command in the terminal:

$ pod init

Then Podfile will be created in your project directory. Open the Podfile and add the following lines to the Podfile.

# Please make sure you define platform on your Podfile
# Make sure to use ios 11.0 for minimum deployment target

platform :ios, '11.0'

target "YourProjectName" do
    
    ...
    
    pod 'TapTalkLive'
    pod 'AFNetworking', '~> 4.0.0', :modular_headers => true
    pod 'JSONModel', '~> 1.1', :modular_headers => true
    
end

Note: For SDK version 1.1.0 and above, removeuse_frameworks! and add additional pod implementation with modular headers to handle some compatibility issues.

For versions below 1.1.0, please remove pod 'AFNetworking' and pod 'JSONModel' implementation on the code above with use_frameworks!

Note: Please make sure you implement ios version 11.0platform :ios, '11.0' for minimum deployment target to obtain latest update of TapTalk.io SDK

Since TapTalk.io use uses git-lfs (Git Large Files Storage) you will need to install GIT LFS to clone/install TapTalk.io SDK through Cocoapods.

Note: Make sure to install git-lfsbefore pod install, otherwise the pod install / pod update will be error

brew install git-lfs
git lfs install

Next, after the git-lfs is installed, install the TapTalk.io through CocoaPods.

$ pod install

Step 2: Grant permission in your application project

To make sure TapTalk.io Omnichannel iOS have all permission to access user's media, file, location, and contact, the application needs to ask for permissions. Go to your info.plist, and add the following key-value pairs.

Information Property Key

Information Property Value

Privacy - Camera Usage Description

$(PRODUCT_NAME) needs to request access to your camera to take profile picture and to send image chat.

Privacy - Contacts Usage Description

$(PRODUCT_NAME) need your permission to access your contact, we will sync your contact to our server and automatically find your friend so it is easier for you to find your friends.

Privacy - Photo Library Additions Usage Description

$(PRODUCT_NAME) needs to request access to your photo library to save photo.

Privacy - Photo Library Usage Description

$(PRODUCT_NAME) needs to request access to your photo library to take profile picture and to send image chat.

Privacy - Location When In Use Usage Description

$(PRODUCT_NAME) needs to request access to your location to send location chat.

Note: You can change Information Property Value based on your own preferences. These values will appear when the application requests permission from the user.

Step 3: Enable background modes

To enable background modes, go to Target -> Capabilities, then turn Background Modes toggle to ON, next select Background fetch and Remote notifications

After you turn on the Background Modes, Required background modes key will be added automatically in your Info.plist as shown below.

Step 4: Initialize TapTalk.io Omnichannel Application Delegate

To allow the iOS SDK to respond to the connection and state changes in your iOS client app, you have to implement all of our application delegate methods in your UIApplicationDelegate methods in appDelegate file.

After you initialize the TapTalk.io Omnichannel, you have to connect and implement these methods in your UIApplicationDelegate methods in appDelegate file to make sure TapTalk.io Omnichannel runs smoothly in your application.

TapTalk.io Omnichannel Application Delegate Method

Description

application:didFinishLaunchingWithOptions:

Tells the delegate that the launch process is almost done and the app is almost ready to run.

applicationWillResignActive:

Tells the delegate that the app is about to become inactive.

applicationDidEnterBackground:

Tells the delegate that the app is now in the background.

applicationWillEnterForeground:

Tells the delegate that the app is about to enter the foreground.

applicationDidBecomeActive:

Tells the delegate that the app has become active.

applicationWillTerminate:

Tells the delegate when the app is about to terminate.

handleException:

Tells the delegate when application throws exception.

AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  
    //Implement TapTalk Omnichannel didFinishLaunchingWithOptions here    
    [[TapTalkLive sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];
    
    //Other code
    ...
    
    return YES;
}
AppDelegate.m
- (void)applicationWillResignActive:(UIApplication *)application {
  
    //Implement TapTalk Omnichannel applicationWillResignActive here
    [[TapTalkLive sharedInstance] applicationWillResignActive:application];
  
    //Other code
    ...
}
AppDelegate.m
- (void)applicationDidEnterBackground:(UIApplication *)application {
    //Implement TapTalk Omnichannel applicationDidEnterBackground here
    [[TapTalkLive sharedInstance] applicationDidEnterBackground:application];
  
    //Other code
    ...
}
AppDelegate.m
- (void)applicationWillEnterForeground:(UIApplication *)application {
  
    //Implement TapTalk Omnichannel applicationWillEnterForeground here
    [[TapTalkLive sharedInstance] applicationWillEnterForeground:application];
  
    //Other code
    ...
  }
AppDelegate.m
- (void)applicationDidBecomeActive:(UIApplication *)application {
  
    //Implement TapTalk Omnichannel applicationDidBecomeActive here    
    [[TapTalkLive sharedInstance] applicationDidBecomeActive:application];
  
    //Other code
    ...
}
AppDelegate.m
- (void)applicationWillTerminate:(UIApplication *)application {
  
    //Implement TapTalk Omnichannel applicationWillTerminate here
    [[TapTalkLive sharedInstance] applicationWillTerminate:application];
  
    //Other code
    ...
}

You have to add below code NSSetUncaughtExceptionHandler(&handleExceptions); in application:didFinishLaunchingWithOptions:method to register uncaught exception handler and add delegate function handleExceptions.

AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Register Uncaught Exception Handler
    NSSetUncaughtExceptionHandler(&handleExceptions);
}

// Add delegate function to handle exceptions
- (void)handleExceptions:(NSException *exception) {
    // Implement TapTalk Omnichannel handleException method
    [[TapTalkLive sharedInstance] handleException:exception];
}

Note: Don't forget to register for exception handler inside application:didFinishLaunchingWithOptions:method and implement handleExceptions method in appDelegate class to make sure TapTalk.io able to handle exceptions.

Step 5: Initialize TapTalk.io Omnichannel iOS in your application class

In order to use TapTalk.io Omnichannel, you must first initialize an instance by passing the APP_KEY_SECRET and API_BASE_URL assigned to your application to the initWithSecretKey: method as a parameter. Generally, initialization is implemented in the appDelegate application:didFinishLaunchingWithOptions: method.

AppDelegate.m
// Import TapTalk.io Omnichannel
#import <TapTalkLive/TapTalkLive.h>

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\
    [[TapTalkLive sharedInstance] initWithSecretKey:APP_KEY_SECRET
    success:^{
        // Succcessfully initialized TapTalkLive
    }
    failure:^(NSString *errorMessage) {
        
    }];
}

...

@end

Parameters APP_KEY_SECRET: (String) application key Secret

To allow the Omnichannel iOS SDK to respond to the connection and state changes in your iOS client app, you have to implement all of our application delegate methods in your UIApplicationDelegate methods in appDelegate file. You can follow the instructions in Implement Application Delegate page.

Initialize Google Places API Key (Optional)

#import <TapTalkLive/TapTalkLive.h>
  
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
    //Initialize Google Places API Key
    [[TapTalkLive sharedInstance] initializeGooglePlacesAPIKey:GOOGLE_PLACES_API_KEY]; 
}

Parameters GOOGLE_PLACES_API_KEY: (String) Google Places API key

Open TapTalk.io Omnichannel View

To open TapTalk Omnichannel's view UI for your application, you can use the presentTapTalkLiveViewWithCurrentNavigationController:animated or pushTapTalkLiveViewWithCurrentNavigationController:animated method from the TapTalkLive class. This will open a homepage view controller containing a list of available channels, the user's latest case, and QnA path.

#import <TapTalkLive/TapTalkLive.h>

/**
Called to show TapTalk Live view with present animation

 @param navigationController (UINavigationController *) your current navigation controller
 @param animated (BOOL) make the present animated or not
*/
[[TapTalkLive sharedInstance] presentTapTalkLiveViewWithCurrentNavigationController:NAVIGATION_CONTROLLER animated:ANIMATED];

/**
Called to show TapTalk Live view with push animation

 @param navigationController (UINavigationController *) your current navigation controller
 @param animated (BOOL) make the present animated or not
*/
[[TapTalkLive sharedInstance] pushTapTalkLiveViewWithCurrentNavigationController:NAVIGATION_CONTROLLER animated:ANIMATED];

Parameters NAVIGATION_CONTROLLER: (UINavigationController) your current active navigation controller ANIMATED: (BOOL) boolean to state animation active or not

Easiest way to install is using :

Background modes is required to handle background process in TapTalk.io. It is used to run some processes in the background before the app is killed. For more information about the processes, check out the .

To enable location search result preview while sending location message, a Google Places API Key is required. To obtain the API key for your application, you can check provided by Google. To initialize, insert your obtained key using the initializeGooglePlacesApiKey() method.

git-lfs
brew
background process section
the documentation
CocoaPods
Cocoapods guides
Adding new key in info.plist
Adding new key in info.plist
created a channel in OneTalk dashboard