OutSystemsモバイル(0) OutSystems Nowの機能はスマートフォンアプリでないと動かないみたい

ForgeにあるOutSystemsのスマートフォンアプリ対応機能OutSystems Now。

今、動作確認をしているのですが、どうもOutSystems Nowのアプリでないと動かない(スマートフォンのブラウザでは機能しない)ようです。

シリーズ一覧:

OutSystems Nowの概要

OutSystemsのService StudioにOutSystems Now機能をインストールすることで、何種類かのスマートフォンならではの機能(GPS情報取得など)をOutSystemsアプリケーションに追加できます。

OutSystems Nowの部品として、Web BlockといくつかのActionやEntityなどが提供されるのでこれを組み込んでアプリケーションを作ります。

そしてiOSやAndroid端末でアプリストアからOutSystems Nowアプリをダウンロードし、自分の環境(Personal Environmentなら~.oustsystemscloud.com。~の部分にはサインアップ時に自分で指定した文字列が入る)と、OutSystems Nowを組み込んでいるアプリケーションがこんな感じにリストアップされます。

OutSystemsNowアプリケーション選択画面

OutSystems NowはHTMLで作成したWebページをネイティブに表示するためのApache Cordovaという仕組みを組み込んでいて、バーコードリーダー、カメラ、GPS、連絡先、カレンダー、ファイルシステムにアクセスする機能を提供しています。

OutSystems Nowの機能はやはりWeb ブラウザで表示すると動かない?

アプリ用の機能なので予想通りではありますが、

スマートフォンのOutSystems Nowアプリで見るとこんな風にGPS情報が取れるアプリケーションが、

位置情報取得(Nowで)

同じスマートフォンのブラウザで開くと位置情報が取れていません。

位置情報取得(スマートフォンブラウザで)

原因

APIドキュメントが見当たらない(機能配置のチュートリアルだけはあるのですが……)ので確証はないのですが、たぶん仕様です。

以下は、開発環境でOutSystemsNow自体を開いた画面です。

GPSを取得する(上で使った)GetLocation Web Blockが表示されています。JavaScriptのExpression(Web Block自体のJavaScriptプロパティで定義した関数を呼んでGPS情報を取得しているらしい)がIfのTrueにだけ入っているのですが、このIfの条件が右下に表示されているとおり、isUsingOutSystemsNowApp()となっています。

GeoLocationWebBlock ドキュメントがやっぱり見つかりませんでした。

が、以下の画面で画面下部に表示しているとおり、IsUsingOutSystemsNowApp()はOutSytems Nowのスマートフォンアプリで使っているときTrueを返すのでしょう。つまりアプリでないとき、OutSystems Nowの機能はそもそも動作しないように組まれてるということだと思われます。

OutSystemsNow機能のApp判定

関連情報

APIドキュメントなど、仕様を明確に説明するドキュメントは見つかりませんでした。

しかし、チュートリアルはありました。

公式情報(OutSystems Now Docs)

ベースとなっているCordova

シェアする

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

フォローする