Giter Site home page Giter Site logo

jonny703 / chat-window-ios Goto Github PK

View Code? Open in Web Editor NEW

This project forked from livechat/chat-window-ios

0.0 1.0 0.0 293 KB

Embeding LiveChat mobile chat window in iOS application

License: MIT License

Ruby 1.04% Swift 95.79% Objective-C 0.57% JavaScript 2.60%

chat-window-ios's Introduction

iOS chat widget for LiveChat and chat.io

iOS chat widget for LiveChat and chat.io allows you to integrate LiveChat or chat.io into your iOS app.

Carthage compatible Version License Platform

Requirements

  • iOS 9.0+
  • Xcode 8.0+

Installation

Carthage

If you use Carthage to manage your dependencies, simply add 'livechat/chat-window-ios' to your Cartfile.

github "livechat/chat-window-ios" ~> 2.0.11

Make sure you have added LiveChat.framework to the "Linked Frameworks and Libraries" section of your target, and have include it in your Carthage framework copying build phase.

CocoaPods

If you use CocoaPods to manage your dependencies, simply add LiveChat to your Podfile.

pod 'LiveChat', '~> 2.0.11'

Manual Installation

You can integrate iOS chat widget into your project manually without using a dependency manager.

Swift

Just drag all files from the LiveChat/Classes directory into your project.

Objective-C

Drag all files from the LiveChat/Classes directory into your project. When adding first *.swift file to Objective-C project, Xcode will ask you to create a Bridging Header. It is not necessary for chat widget to work, so you can decline unless you plan to call Swift code from Objective-C. More information about bridging headers and Swift and Objective-C interoperability can be found here. You need to put the following import statement: #import "<Your Project Name>-Swift.h" at the top of your .m file.

Also, for Objective-C projects, you need to set the Embedded Content Contains Swift Code flag in your project to Yes (found under Build Options in the Build Settings tab).

Usage

Initalization

import LiveChat

LiveChat.licenseId = "YOUR_LICENSE_ID"

Presenting Chat Widget

LiveChat.presentChat()

Setting Custom Variables

You can provide customer name or email if they are known, so a customer will not need to fill out the pre-chat survey:

LiveChat.name = "iOS Widget Example"
LiveChat.email = "[email protected]"

If you want to associate some additional info with your customer, you can set up Custom Variables:

LiveChat.setVariable(withKey:"Variable name", value:"Some value")

Assign chat to specific group

You can route your customers to specific group of agents by providing groupId. More information can be found here: https://www.livechatinc.com/kb/dividing-live-chat-by-group/.

LiveChat.groupId = "7"

Notifying the user about the agent's response

You can notifiy your user about agent response if chat was minimized by the user. To handle the incoming messages, your class must implement LiveChatDelegate protocol and set itself as LiveChat.delegate.

class YOUR_CLASS_NAME : LiveChatDelegate { // Your class need to implement LiveChatDelegate protocol
	func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
		LiveChat.licenseId = "YOUR_LICENSE_ID"
		LiveChat.delegate = self // Set self as delegate

		return true
	}

	func received(message: LiveChatMessage) {
		print("Received message: \(message.text)")
		// Handle message here
	}
}

Handling URL

By default, all links in chat messages are opened in Safari browser. To change this behavior you can use the LiveChatDelegate to handle URL's yourself.

func handle(URL: URL) {
	print("URL is \(URL.absoluteString)")
	// Handle URL here
}

Sending files from device library

If you have file sharing enabled for the visitors, you should provide usage description by including NSPhotoLibraryUsageDescription (Privacy - Photo Library Usage Description), NSCameraUsageDescription (Privacy - Camera Usage Description) and NSMicrophoneUsageDescription (Privacy - Microphone Usage Description) keys in your Info.plist file to avoid crash on iOS 10 or higher. You can check Info.plist files in example projects.

Sample Apps

Sample apps for both Swift and Objective-C can be found in the Examples folder.

Getting help

If you have any questions or want to provide feedback, chat with us!

License

iOS chat widget is available under the MIT license. See the LICENSE file for more info.

chat-window-ios's People

Contributors

jercik avatar krzysztof-gorski avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.