FileMaker ハイブリッド開発 01

Windows や Mac のデスクトップ向けソリューションなら従来から様々な方法があるが、 iPhone、iPad 向けソリューションとなると、 iOS プラットフォーム全体のセキュリティーを保つための制限が数多く存在する。iPhone 、iPad 向けつまりは FileMaker Go のアプリケーションにおいても同様で、FileMaker Go にはない機能を付けたいと言っても選択肢は限られる。そしてその限られた選択肢の中で唯一許されているのが、Webの技術を使ったものである。簡単に言うと、FileMaker Go の中でWebブラウザ(FileMaker的に正式にはWebビューア、アプリでいうWebview)を動かして、機能を補うというものである。これを使ってFileMakerではできない、アニメーションの動きであったり、ドラッグ操作、画像処理などをWebビューアで行い、FileMakerのデータやスクリプトと連動させます。

FileMakerにかぎらず一般的には、iOSアプリケーションを作成するときに難しいコード知識を極力使わなくてもWebのコードを使ってソリューションを作り、アプリケーションの側だけをXcode等で作成する ハイブリッド アプリ開発が注目を浴びていますが、Web と FileMaker のハイブリッドを進める! という数少ない弊社です。

ここから本題。最初なのでまずは基本のところからではありますが、一気に内容はグレードアップします。WebビューアからFileMakerにデータを戻したり、FileMakerのスクリプトを実行できます。そうでなければハイブリッドとはいえないですね。FileMaker の最新版13には非常に柔軟なURLスキームがありこれを使います。

FMP://[[アカウント:パスワード@]ネットアドレス]/データベース名[?script=スクリプト名[&param=スクリプト引数][&$variablename=値]]

これをWebビューアのHTMLならaタグのhref=””の中に、JavaScriptならlocation.href=””の中に入れることで使用できます。重要な点はこのWebビューアを内包しているFileMakerのスクリプトを呼び出すときは

FMP://$/データベース名[?script=スクリプト名[&param=スクリプト引数][&$variablename=値]]

とネットアドレス部分を $ にすることで利用できます。この $ がFileMaker Pro で使用できるようになったのは13v2以上からです。FileMaker Go はかなり以前から使えてました。カギ括弧[]は省略可能なことを示しています。下記はサンプルコードです。

FileMakerファイル名:test.fmp12 、 スクリプト名: sctest

<a href=”fmp://$/test?script=sctest&param=data”>sctest act</a>

もしくは

<div onclick=”location.href=’fmp://$/test?script=sctest&param=data'”>sctest act</div>

上記によってWebビューアからFileMakerのスクリプトを実行することが出来、またparam=で渡したdata部分の文字列はFileMakerのスクリプト内で使用する関数「Get( スクリプト引数 )」で取得可能です。アカウントとパスワードはすでにFileMakerファイルが開いているので省略してもログイン中のアカウント情報が使われます。FileMakerのスクリプト内で使用するローカル変数は頭に$を付けるルールなんですが、それをスクリプトで初期化や宣言を行わなくても、すぐ使用することが可能です。

今日はここまでにします。たったこれだけではありますが、この時点でもすでに注意点いくつかあります。

・日本語文字、文字そのものに入ってはいけない文字。

・file:スキーム、data:スキームによる表示。

・変更によるWeb再読み込み。

これは次回以降で。