iOS Framework

Mluvii poskytuje dva frameworky pro integraci s vaší aplikací. První framework pracuje s webView z WebKit sady. Druhý framework používá SwiftUI.

Námi poskytnutý kód umožňuje:

  • inicializace view s widgetem s údaji vaší společnosti,
  • oznámení o změně stavu widgetu,
  • otevření chatu,
  • zavření chatu a načtení stránky s widgetem.

Přidání vlastních parametrů:

  • u přidání vlastních parametrů je nutné je nejdříve nastavit v Administračním rozhraní viz Aplikace
  • parametry je nutné nastavit před zavoláním metody chat?.openChat()

    chat?.addCustomData("param_name", "param_value');
    

    Známé omezení: V tuto chvíli není možné kvůli nefunkčnosti getUserMedia v in-app WkWebView nelze pustit video v mluvii integrovaném v Aplikaci.

Pokud projekt stažený z GitHubu nepůjde spustit z důvodu, že nelze nalézt framework „MluviiChat“, doporučujeme překompilovat projekt „MluviiChat“ a nově vytvořeným souborem „MluviiChat.framework“ nahradit „MluviiChat.framework“ v projektu „TestWebkitWebview“.

Náš framework je kompilovaný pro minimální verzi iOS 9.0

Pokud chcete, aby aplikace fungovala správně( odesílání souborů, kamera a mikrofon), je třeba v souboru info.plist přidat vysvětlení, z jakého důvodu potřebuje vaše aplikace přístup k těmto právům. Konkrétně se jedná o tyto položky:

  • Privacy - Camera usage Description
  • Privacy - Microphone usage Description
  • Privacy - Media Library Usage Description

Více info na Stránkách developer apple

Pozor, v iOS 10 a vyšší, pokud nemátě v info.plist definici na co práva potřebujete a aplikace se pokusí použít, celá aplikace spadne

Vzorový kód:

//
//  ViewController.swift
//  TestWebkitWebview
//
//  Created by Mluvi Mac on 15.03.18.
//  Copyright © 2018 Mluvii. All rights reserved.
//

import UIKit
import WebKit
import MluviiChat

class ViewController: UIViewController, WKUIDelegate, WKNavigationDelegate{
    
    //MARK: Properties
    
    @IBOutlet weak var OpenButton: UIButton!
    var webView:WKWebView!
    var widgetState:Int32 = -1
    var chat: MluviiChat? = nil
    
    // Funkce, která zpracovává změnu stavu widgetu
    func statusUpdate(status: Int32) -> Void{
        print("Update status \(status)")
        widgetState = status
        if(widgetState == 0){
            OpenButton.backgroundColor = UIColor.gray
        }else if(widgetState == 1){
            OpenButton.backgroundColor = UIColor.green
        }else if(widgetState == 2){
            OpenButton.backgroundColor = UIColor.orange
        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        chat = MluviiChat()
        
        // Nastavení funkce, která určuje, co se má stát při zavření chatu
        chat?.setChatEnded {
            print("Minimize view")
            self.minimizeView()
        }
        
        // Nastavení funkce, která zpracovává změnu stavu
        chat?.setStatusUpdater(statusF: statusUpdate)
        
        // Vytvoření WKWebView, které načte url podle zadaného serveru, company GUID, tenant ID, preset name a požadovaného jazyku
        // url, companyGuid a tenantId jsou povinné proměnné, presetName, language a scope můžou být nil
        webView = chat?.createWebView(url: "ptr.mluvii.com", companyGuid: "295b1064-cf5b-4a5d-9e05-e7a74f86ae5e", tenantId: "1", presetName: nil, language: nil, scope: nil)
        self.view.addSubview(webView)
    }
    
    // Funkce, která otevře chat ve WebView a maximalizuje ho
    func maximizeWebView(){
        chat?.openChat()
    }
    
    // Funkce, která nastaví rozměry webView na 0,0 a změní url zpět na požadovaný widget
    func minimizeView(){
        chat?.resetUrl()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        print("Did receive memory warning")
    }
    
    
    //MARK: Actions

    @IBAction func TouchInside(_ sender: Any) {
        if(widgetState != -1){
            maximizeWebView()
        }
    }
    /**/
}

results matching ""

    No results matching ""