OutSystemsモバイル(3) 位置情報

ForgeにあるOutSystemsのスマートフォンアプリ対応機能OutSystems Nowを利用して、スマートフォンのネイティブ機能を試してみます。

今回は、位置情報です。スマートフォンユーザの現在位置を取得します。

Nowについてはきちんとした仕様が見つからないので、試してみた結果のみで書いている点に注意してください。

シリーズ一覧:

機能

OutSystems Now内で、GetLocationというWeb Blockとして実装されています。

OutSystems Now App(スマートフォンアプリ。使っているスマートフォンのアプリストアから無料でダウンロードできます)で開いているときのみ、以下の動作をします。

  • 起動直後に、位置情報を取得して、パラメータで指定したInputに自動入力する
  • パラメータで指定したボタン(またはリンク)クリック時に位置情報を取得して、パラメータで指定したInputに自動入力する

取得する情報は以下6つ

  • 緯度
  • 経度
  • 高度(m)
  • 方向(角度)
  • 速度(m/s)
  • 取得時間

いらない情報については、Inputをパラメータに指定しないでおけば大丈夫です。

GetLocation Web BlockのJavaScriptで該当項目の値を設定する前に、パラメータで指定されているかチェックするので。

利用手順

OutSystems Nowを開発環境にインストールしていなければ、インストール。

開発するモジュールを開いて参照を追加します。Manage Dependenciesアイコンをクリック。
WS000001

OutSystems NowのScreen Flows/DeviceFeatures/GetLocationにチェックを入れてOKをクリック。

WS000000

これで開発するモジュールにモバイルの位置情報取得機能を組み込めるようになります。

Web Screenを1つ作り、Inputを6個、Buttonを1個、OutSystemsNow/DeviceFeatures/GetLocationを1個配置。

InputとButtonはGetLocatioンのパラメータとしてIdを渡さないといけないので、Nameを設定しておきましょう。

ButtonはGetLocationの部品内でJavaScriptでイベント処理してくれるので、どこにも行かないようにします(ここではMethodをAjax Submitにして空のScreen ActionをDestinationにしてある)。

Screen

GetLocationのプロパティ設定。

ButtonIdの下はInputのIdを設定します。いらない情報のInputは未入力にしておきます。

上から順に、緯度、経度、高度、方向、速度、時間です。

GetLocationプロパティ

動作結果サンプル

起動直後 方向とスピードは取れていませんね

初期表示時点

ボタンクリック後(表示が更新された)

ボタンクリック後

GetLocationの内部動作

画面表示時点で、Web Blockに定義されたJavaScript関数が実行されます。

その動作は

  1. クリックイベントのリスナーとして位置取得関数(これも内部定義)を登録
  2. ボタンのクリックイベントを強制的に1回発生させる

2.の処理があるので、初期表示時点でも位置が取得される動作になっています。

関連情報

公式チュートリアル ←(2022/3/21 リンク切れにつき、リンク削除)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする