モバイル JavaScript

入門

Odoo 10.0では、すべての**Odooアプリ**にアクセスできるモバイルアプリをリリースしました(カスタマイズされたモジュールでさえも)。

このアプリケーションは**Odoo Web**と**Native Mobileコンポーネント**の組み合わせです。 言い換えれば、ネイティブ、モバイル、WebViewコンテナ内にロードされたOdoo Webインスタンスです。

このページでは、カメラ、振動、通知、トーストなどのモバイルネイティブコンポーネントに、JavaScript経由でアクセスする方法を説明しています。 このため、Odoo JavaScript API を知っている場合は、モバイル開発者である必要はありません。すべてのモバイル機能にアクセスできます。

警告

これらの機能は Odoo Enterprise 10.0+ のみで動作します

どのように機能しますか?

モバイルアプリケーションの内部動作:

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

もちろん、モバイルネイティブWebコンテナ上でロードするWebページです。 しかし、Web JavaScript からネイティブリソースにアクセスできるように統合されています。

WebPages (Odoo Web) は各レイヤーの上にあります。 2番目の層は、Odoo Web (JS)とネイティブモバイルコンポーネントの間のブリッジです。

JavaScript からの呼び出しがトリガーされると、Bridge を通過し、Bridge はネイティブの呼び出し元に渡してそのアクションを実行します。

ネイティブコンポーネントが作業を完了すると、再びBridgeに渡され、JavaScriptで出力が得られます。

Native コンポーネントに要求される処理時間は、Native リソースから何を要求するかによって異なります。例えば、Camera または GPS Location です。

使い方は?

Odoo Web Frameworkと同じように、モバイル API は web_mobile.rpc からオブジェクトを取得することでどこでも使用できます。

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

mobile RPC オブジェクトは利用可能なメソッドのリストを提供します (これはモバイルアプリでのみ動作します)。

メソッドが利用可能かどうかを確認し、実行します。

メソッド

注釈

各メソッドはデータJSON辞書を返すJQueryDeferredオブジェクトを返します

トーストをデバイスに表示

showToast()
引数
  • args (object()) -- 表示する メッセージ テキスト

トーストは、小さなポップアップで操作に関する簡単なフィードバックを提供します。 メッセージに必要なスペースの量だけを入力し、現在のアクティビティは表示され、インタラクティブなままになります。

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

バイブレーションデバイス

vibrate()
引数
  • args (object()) -- 指定された時間の間、常に振動します(ミリ秒)。

与えられた時間でモバイルデバイスを振動させます。

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

スナックバーをアクション付きで表示

showSnackBar()
引数
  • args (object()) -- (必須) メッセージ スナックバーに表示するには**ボタンラベル** (オプション)

戻り値

SnackBar がしばらくして自動的に解除された場合、ユーザーが Action ボタンをクリックした場合、True がしばらくすると、False になります。

スナックバーは、操作に関する軽量なフィードバックを提供します。 彼らは、モバイル上の画面の下部に簡単なメッセージを表示します, 大規模なデバイスの左下隅に. スナックバーは画面上の他のすべての要素の上に表示され、一度に1つだけ表示できます。

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()) -- 通知の title (最初の行) は、通知の message (2 行目) は、標準の通知です。

通知とは、アプリケーションの通常の UI 以外のユーザーに表示できるメッセージです。 通知を発行するようシステムに指示すると、最初に通知領域にアイコンとして表示されます。 通知の詳細を確認するには、ユーザーが通知ドロワーを開きます。 通知領域と通知ドロワーの両方は、ユーザーがいつでも表示できるシステム制御領域です。

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

デバイスに連絡先を作成

addContact()
引数
  • args (object()) -- 連絡先の詳細を含む辞書 可能なキー (名前、携帯電話、電話、FAX、電子メール、ウェブサイト、ストリート2、country_id、state_id、city、zip、parent_id、関数、画像)

指定された連絡先の詳細を持つ新しいデバイスの連絡先を作成します。

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()
戻り値

任意のバーコードから code をスキャンしました

バーコードAPIはバーコードをリアルタイムで、デバイス上で任意の方向で検出します。

バーコードAPIは以下のバーコード形式を読み取ることができます:

  • 1Dバーコード:EAN-13、EAN-8、UPC-A、UPC-E、Code-39、Code-93、Code-128、Codabar

  • 2Dバーコード: QRコード, データマトリックス, PDF-417, AZTEC

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

端末のアカウントを切り替え中

switchAccount()

スイッチアカウントを使用して、デバイス上のアカウントから別のアカウントに切り替えます。

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