ForgeにあるOutSystemsのスマートフォンアプリ対応機能OutSystems Now。
今、動作確認をしているのですが、どうもOutSystems Nowのアプリでないと動かない(スマートフォンのブラウザでは機能しない)ようです。
シリーズ一覧:
- OutSystemsモバイル(0) OutSystems Nowの機能はスマートフォンアプリでないと動かないみたい
- OutSystemsモバイル(1) バーコード・QRコード
- OutSystemsモバイル(2) カメラ
- OutSystemsモバイル(3) 位置情報
- OutSystemsモバイル(4) カレンダー登録
- OutSystemsモバイル(5) 連絡先登録
Table of Contents
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を組み込んでいるアプリケーションがこんな感じにリストアップされます。
OutSystems NowはHTMLで作成したWebページをネイティブに表示するためのApache Cordovaという仕組みを組み込んでいて、バーコードリーダー、カメラ、GPS、連絡先、カレンダー、ファイルシステムにアクセスする機能を提供しています。
OutSystems Nowの機能はやはりWeb ブラウザで表示すると動かない?
アプリ用の機能なので予想通りではありますが、
スマートフォンのOutSystems Nowアプリで見るとこんな風にGPS情報が取れるアプリケーションが、
同じスマートフォンのブラウザで開くと位置情報が取れていません。
原因
APIドキュメントが見当たらない(機能配置のチュートリアルだけはあるのですが……)ので確証はないのですが、たぶん仕様です。
以下は、開発環境でOutSystemsNow自体を開いた画面です。
GPSを取得する(上で使った)GetLocation Web Blockが表示されています。JavaScriptのExpression(Web Block自体のJavaScriptプロパティで定義した関数を呼んでGPS情報を取得しているらしい)がIfのTrueにだけ入っているのですが、このIfの条件が右下に表示されているとおり、isUsingOutSystemsNowApp()となっています。
ドキュメントがやっぱり見つかりませんでした。
が、以下の画面で画面下部に表示しているとおり、IsUsingOutSystemsNowApp()はOutSytems Nowのスマートフォンアプリで使っているときTrueを返すのでしょう。つまりアプリでないとき、OutSystems Nowの機能はそもそも動作しないように組まれてるということだと思われます。
関連情報
APIドキュメントなど、仕様を明確に説明するドキュメントは見つかりませんでした。
しかし、チュートリアルはありました。
公式情報(OutSystems Now Docs) ←(2022/3/21 リンク切れにつき、リンク削除)