Android Library

Mluvii poskytuje library pro integraci s vaší aplikací. Minimální verze Androidu je 5.0, protože v nižších verzích není webview postaveno na Chromiu, které se samo aktualizuje a proto je zastaralé. Námi poskytnutý kód umožňuje:

  • inicializace webview s widgetem s údaji vaší společnosti

MluviiLibrary.getMluviiWebView(Context, Název_serveru, ID_Společnosti, ID_Tenantu, Název_balíčku, jazyk);
  • oznámení o změně stavu widgetu

 MluviiLibrary.setStatusOnlineCallback(() ->{});
 MluviiLibrary.setStatusBusyCallback(() ->{});
 MluviiLibrary.setStatusOfflineCallback(() ->{});
  • otevření chatu

 MluviiLibrary.runChat();
  • zavření chatu a načtení stránky s widgetem

MluviiLibrary.setCloseChatFunc(() ->{});
  • přidání vlastního callbacku na otevření URL

MluviiLibrary.setUrlCallbackFunc(new MluviiLibrary.UrlCallback(){

            @Override
            public Void call() throws Exception{
                Log.d("MLUVII_URL_CALLBACK","Test url: "+this.url);
                return null;
            }
        });
  • přidání odchytávání eventů pro Začátek a konec sezení

public static class MluviiEventCallback implements Callable<Void>{
        public String Event;
        public long SessionId;

        @Override
        public Void call() throws Exception {
            return null;
        }
    }
  • 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

  • Pokud uživatel mobilní aplikace musí po otevření WebView vykonat nějakou akci (kliknout na tlačítko apod.), doporučujeme přidat delay např. 2 sekundy. Tím zajistíte bezchybné uložení hodnot do existujících parametrů sezení.

  • zároveň je nutné přidat apostrofy (') nebo uvozovky (") kolem klíče i hodnoty

  • parametry je nutné nastavit před zavoláním metody MluviiLibrary.runChat()

MluviiLibrary.addCustomData("param_name", "param_value");

nebo

MluviiLibrary.addCustomData('param_name', 'param_value');
  • Pro správné fungování mluvii je také doporučeno povolit cookies ve WebView

if (android.os.Build.VERSION.SDK_INT >= 21) {   
     CookieManager.getInstance().setAcceptThirdPartyCookies(mluviiWebView, true);
} else {
     CookieManager.getInstance().setAcceptCookie(true);
}
  • Aby bylo možné posílat soubory do chatu, je nutné přidat následující část kódu do vašeho projektu (do MainActivity.java souboru):

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
        {
            if (requestCode == REQUEST_SELECT_FILE)    {
                uploadMessages = MluviiLibrary.getFilePathCallbacks();

                if (uploadMessages == null)
                    return;
                if (data == null && getCameraCaptureUri() != null){
                    uploadMessages.onReceiveValue(new Uri[]{getCameraCaptureUri()});
                }
                else
                    uploadMessages.onReceiveValue(WebChromeClient.FileChooserParams.parseResult(resultCode, data));

                uploadMessages = null;
            }
        } else {
            uploadMessage = MluviiLibrary.getFilePathCallback();
            if (null == uploadMessage) return;
            Uri result = data == null || resultCode != MainActivity.RESULT_OK ? null : (data.getData() != null ? data.getData() : getCameraCaptureUri());
            uploadMessage.onReceiveValue(result);
            uploadMessage = null;
        }

    }

uploadMessages a uploadMessage jsou proměnné definované takto:

 public ValueCallback<Uri[]> uploadMessages;
    public ValueCallback<Uri> uploadMessage;

Definice velikosti souboru, který je možné vložit do sezení:

private static int REQUEST_SELECT_FILE = 65456

Aby bylo možné využívat audia a videa v aplikaci, je nutné Povolit práva pro přístup ke kameře a mikrofonu.

Jako první část je nutné přidat do manifestu

    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.CAMERA" />

Druhá část je pro zařízení s verzí Androidu 6.0+, kde lze kontrolovat práva za běhu aplikace

 if (ContextCompat.checkSelfPermission(this,
                Manifest.permission.CAMERA)
                != PackageManager.PERMISSION_GRANTED) {

            if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                    Manifest.permission.CAMERA)) {
                //Can add explanation why do you need this specific permissions
                ActivityCompat.requestPermissions(this,
                        new String[]{Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO},
                        REQUEST_CAMERA_PERMISSION);

            } else {
                // No explanation needed; request the permission
                ActivityCompat.requestPermissions(this,
                        new String[]{Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO},
                        REQUEST_CAMERA_PERMISSION);
            }
        }
  • Pokud chcete používat video, je potřeba ve vašem produktu povolit kameru a mikrofon

Android Library

Vzorový kód

K dispozici zde.

Last updated