Mobil JavaScript

Bevezetés

Az Odoo 10.0-ban kiadtunk egy mobilalkalmazást, amely lehetővé teszi az összes Odoo alkalmazás elérését (még az egyedi modulokat is).

Az alkalmazás az Odoo Web és a Natív Mobil komponensek kombinációja. Más szavakkal, ez egy Odoo Web példány, amely egy natív, mobil, WebView konténerben van betöltve.

Ez az oldal dokumentálja, hogyan érheti el a mobil natív komponenseket, mint például a Kamera, Rezgés, Értesítés és Toast az Odoo Weben keresztül (JavaScript segítségével). Ehhez nem szükséges mobilfejlesztőnek lennie, ha ismeri az Odoo JavaScript API-t, hozzáférhet az összes elérhető mobil funkcióhoz.

Figyelem

Ezek a funkciók csak Odoo Enterprise 10.0+ verzióval működnek

Hogyan működik?

A mobilalkalmazás belső működése:

../../../_images/mobile_working.jpg

Természetesen ez egy weboldal, amely betöltődik egy Mobil Natív Web konténerben. De úgy van integrálva, hogy hozzáférhet a natív erőforrásokhoz a webes JavaScriptből.

A WebPages (Odoo Web) minden réteg tetején helyezkedik el, ahol a második réteg egy Híd az Odoo Web (JS) és a natív mobil komponensek között.

Amikor bármilyen JavaScript hívás elindul, az áthalad a Hídon, és a Híd továbbítja a natív meghívónak, hogy végrehajtsa azt a műveletet.

Amikor a natív komponens elvégezte a munkáját, ismét a Hídhoz kerül, és megkapja az eredményt JavaScriptben.

A natív komponens által igényelt feldolgozási idő attól függ, hogy mit kér a natív erőforrásoktól. Például a Kamera vagy a GPS helyzet.

Hogyan kell használni?

Csakúgy, mint az Odoo Web Framework, a Mobil API bárhol használható, ha megszerezzük az objektumot a web_mobile.rpc-ből.

../../../_images/odoo_mobile_api.png

A mobil RPC objektum egy listát biztosít az elérhető metódusokról (ez csak a mobil alkalmazással működik).

Ellenőrizze, hogy a metódus elérhető-e, majd hajtsa végre.

Metódusok

Megjegyzés

Mindegyik módszer egy JQuery Deferred objektumot ad vissza, amely egy JSON adat szótárt ad vissza

Toast megjelenítése az eszközön

showToast()
Argumentum
  • args (object()) – üzenet szöveg megjelenítése

A toast egyszerű visszajelzést nyújt egy műveletről egy kis felugró ablakban. Csak annyi helyet foglal el, amennyi az üzenethez szükséges, és a jelenlegi tevékenység látható és interaktív marad.

mobile.methods.showToast({'message': 'Message sent'});
../../../_images/toast.png

Eszköz rezegtetése

vibrate()
Argumentum
  • args (object()) – Folyamatos rezgés a megadott időtartamig (milliszekundumban).

Mobil eszköz rezegtetése a megadott időtartammal.

mobile.methods.vibrate({'duration': 100});

Snackbar megjelenítése művelettel

showSnackBar()
Argumentum
  • args (object()) – (kötelező) Üzenet megjelenítése a snackbarban és a művelet gomb címkéje a Snackbarban (opcionális)

Visszatérési érték

True, ha a felhasználó rákattint a Művelet gombra, False, ha a SnackBar egy idő után automatikusan eltűnik.

A snackbárok könnyű visszajelzést nyújtanak egy műveletről. Rövid üzenetet jelenítenek meg a képernyő alján mobil eszközökön vagy a bal alsó sarokban nagyobb eszközökön. A snackbárok a képernyőn lévő összes többi elem fölött jelennek meg, és egyszerre csak egy jeleníthető meg.

mobile.methods.showSnackBar({'message': 'Message is deleted', 'btn_text': 'Undo'}).then(function(result){
    if(result){
        // Do undo operation
    }else{
        // Snack Bar dismissed
    }
});
../../../_images/snackbar.png

Értesítés megjelenítése

showNotification()
Argumentum
  • args (object()) – értesítés címe (első sor), értesítés üzenete (második sor) egy szabványos értesítésben.

Az értesítés egy olyan üzenet, amelyet az alkalmazás normál felhasználói felületén kívül jeleníthet meg a felhasználónak. Amikor utasítja a rendszert egy értesítés kiadására, az először egy ikonként jelenik meg az értesítési területen. Az értesítés részleteinek megtekintéséhez a felhasználó megnyitja az értesítési fiókot. Mind az értesítési terület, mind az értesítési fiók rendszer által vezérelt területek, amelyeket a felhasználó bármikor megtekinthet.

mobile.showNotification({'title': 'Simple Notification', 'message': 'This is a test for a simple notification'})
../../../_images/mobile_notification.png

Kapcsolat létrehozása az eszközön

addContact()
Argumentum
  • args (object()) – Szótár a kapcsolati adatokkal. Lehetséges kulcsok (név, mobil, telefon, fax, email, weboldal, utca, utca2, ország_id, állam_id, város, irányítószám, szülő_id, funkció és kép)

Új eszközkapcsolat létrehozása a megadott kapcsolati adatokkal.

var contact = {
    'name': 'Michel Fletcher',
    'mobile': '9999999999',
    'phone': '7954856587',
    'fax': '765898745',
    'email': '[email protected]',
    'website': 'http://www.agrolait.com',
    'street': '69 rue de Namur',
    'street2': false,
    'country_id': [21, 'Belgium'],
    'state_id': false,
    'city': 'Wavre',
    'zip': '1300',
    'parent_id': [8, 'Agrolait'],
    'function': 'Analyst',
    'image': '<<BASE 64 Image Data>>'
}

mobile.methods.addContact(contact);
../../../_images/mobile_contact_create.png

Vonalkódok beolvasása

scanBarcode()
Visszatérési érték

Beolvasott kód bármely vonalkódból

A vonalkód API valós időben, az eszközön, bármilyen tájolásban érzékeli a vonalkódokat.

A vonalkód API a következő vonalkódformátumokat tudja olvasni:

  • 1D vonalkódok: EAN-13, EAN-8, UPC-A, UPC-E, Code-39, Code-93, Code-128, ITF, Codabar

  • 2D vonalkódok: QR Code, Data Matrix, PDF-417, AZTEC

mobile.methods.scanBarcode().then(function(code){
    if(code){
        // Perform operation with the scanned code
    }
});

Fiók váltása az eszközön

switchAccount()

Használja a switchAccount funkciót, hogy egyik fiókról a másikra váltson az eszközön.

mobile.methods.switchAccount();
../../../_images/mobile_switch_account.png