Мобільний JavaScript

Вступ

У Odoo 10.0 ми випустили мобільний додаток, який дає вам доступ до всіх Odoo додатків (навіть до налаштованих модулів).

Додаток являє собою комбінацію компонентів Odoo Web і Native Mobile. Іншими словами, це екземпляр Odoo Web, завантажений у рідний мобільний контейнер WebView.

На цій сторінці описано, як ви можете отримати доступ до мобільних компонентів, таких як камера, вібрація, сповіщення та тост, через Odoo Web (через JavaScript). Для цього вам не потрібно бути мобільним розробником, якщо ви знаєте Odoo JavaScript API, ви можете отримати доступ до всіх доступних мобільних функцій.

Попередження

Ці функції працюють лише з Odoo Enterprise 10.0+

Як це працює?

Внутрішня робота мобільного додатку:

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

Звичайно, це веб-сторінка, яка завантажується в контейнер Mobile Native Web. Але він інтегрований таким чином, що ви можете отримати доступ до рідних ресурсів із веб-версії JavaScript.

Веб-сторінки (Odoo Web) знаходяться у верхній частині кожного шару, де другий рівень є мостом між Odoo Web (JS) і рідними мобільними компонентами.

Коли запускається будь-який виклик із JavaScript, він проходить через Bridge, а Bridge передає його власному інвокеру для виконання цієї дії.

Коли рідний компонент виконає свою роботу, він знову передається в Bridge, і ви отримуєте вихідні дані в JavaScript.

Час процесу, необхідний рідному компоненту, залежить від того, що ви запитуєте з рідних ресурсів. Наприклад, місцезнаходження камери або GPS.

Як ним користуватися?

Подібно до Odoo Web Framework, Mobile API можна використовувати будь-де, отримавши об’єкт із web_mobile.rpc

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

Мобільний об’єкт RPC надає список доступних методів (це працює лише з мобільною програмою).

Перевірте, чи доступний метод, а потім виконайте його.

Методи

Примітка

Кожен із методів повертає об’єкт JQuery Deferred, який повертає словник даних JSON

Показати Toast на пристрої

showToast()
Аргументи
  • args (object()) – повідомлення текст для відображення

Toast надає простий відгук про операцію в невеликому спливаючому вікні. Він заповнює лише той обсяг місця, який необхідний для повідомлення, а поточна активність залишається видимою та інтерактивною.

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

Вібраційний пристрій

vibrate()
Аргументи
  • args (object()) – Постійно вібрує протягом зазначеного періоду часу (у мілісекундах).

Вібрація мобільного пристрою із заданою тривалістю.

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

Показати snackbar із дією

showSnackBar()
Аргументи
  • args (object()) – (обов’язково) Повідомлення для показу на snackbar та дії мітка кнопки на Snackbar (необов’язково)

Повертає

True, якщо користувач натискає кнопку дії, False, якщо SnackBar автоматично закривається через деякий час.

Snackbars надають легкий відгук про операцію. Вони показують коротке повідомлення внизу екрана на мобільному телефоні або в нижньому лівому куті на великих пристроях. Snackbars з’являються над усіма іншими елементами на екрані, і одночасно може відображатися лише одна.

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

Показати повідомлення

showNotification()
Аргументи
  • args (object()) – заголовок (перший рядок) сповіщення, повідомлення (другий рядок) сповіщення, у стандартному сповіщенні.

Сповіщення – це повідомлення, яке можна відобразити користувачеві за межами звичайного інтерфейсу користувача додатку. Коли ви наказуєте системі надіслати сповіщення, воно спочатку з’являється у вигляді значка в області сповіщень. Щоб переглянути деталі сповіщення, користувач відкриває ящик сповіщень. І область сповіщень, і панель сповіщень є контрольованими системою областями, які користувач може переглянути в будь-який час.

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

Створити контакт в пристрої

addContact()
Аргументи
  • args (object()) – Словник з контактними даними. Можливі ключі (name, mobile, phone, fax, email, website, street, street2, country_id, state_id, city, zip, parent_id, function та image)

Створіть новий контакт пристрою з указаними контактними даними.

var contact = {
    'name': 'Michel Fletcher',
    'mobile': '9999999999',
    'phone': '7954856587',
    'fax': '765898745',
    'email': 'michel.fletcher@agrolait.example.com',
    '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

Сканування штрих-кодів

scanBarcode()
Повертає

Відсканований код з будь-якого штрих-коду

API штрих-коду виявляє штрих-коди в режимі реального часу на пристрої в будь-якій орієнтації.

API штрих-кодів може читати такі формати штрих-кодів:

  • 1D штрих-коди: EAN-13, EAN-8, UPC-A, UPC-E, Code-39, Code-93, Code-128, ITF, Codabar

  • 2D штрих-коди: QR-код, Data Matrix, PDF-417, AZTEC

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

Зміна облікового запису на пристрої

switchAccount()

Використовуйте switchAccount для переходу з одного облікового запису на інший на пристрої.

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