リッチインターネットアプリケーションでは、ディープリンクは、アプリケーションの再ロードをせずにアプリケーションの特定の状態に直接リンクする機能で ある。これは従来のブラウザアプリケーションでは一般的なエクスペリエンスであり、実装テクノロジーに関わらずユーザはまだ動作することを期待する。 Flex 3では、ディープリンクのサポート
(リンク)が追加されたがそれほど多くの拡張要求をサポートしない。こうした場合、FlexデベロッパはURLKitを使用するこ とができる。
近ごろInsideRIAは、URLKitを詳しく取り上げた
Flex 2は、ヒストリー管理機能を提供した。従来のブラウザエクスペリエンスをできるだけ多く保存する必要があるアプリケーションにとっては、これが完全なソ リューションではない理由がいくつかある。特定のURLに対して、またアプリケーションの特定の状態にマップする方法に対してはデベロッパはほとんど制御 力を持たない(FlexアプリケーションでURLは自動的に作成されない)。このことが、アプリケーションの今後のバージョンのURL構造の保存をほとん ど不可能にしている。
URLKitは、URLとアプリケーション状態間の関係に対して、きめの細かい双方向の制御を提供することで、この種のテクノロジーを拡張しようとする。 MXML内でアプリケーションの状態に対するURLマッピングを宣言することができる。
URLKitは、URLおよび対応するアプリケーション状態を制御するための4つのルールを提供する。
- UrlValueRule - 以前紹介したとおり、このルールはデベロッパがURLの一部をアプリケーションのプロパティにマップできるようにするものである。このやり方でUrlValueRuleを使用する場合、2つの値(URLおよびアプリケーションプロパティ)が互いに束縛されるため、一方で変更があると、もう一方にもそれが反映される。バインディングを使用したい場合、UrlValueRuleは、状態の変化をトリガーすることにも使用される変更イベントをディスパッチする。
- UrlNavigatorRule - アプリケーションはUrlValueRule以外のルールで役立つと以前述べた。UrlNavigatorRuleは、専らAccordian、NavBar、TabNavigatorおよびViewStackと動作するよう意図されている。そこで、わざわざURL値をselectedIndexプロパティにマップせずに、単にそれが示す必要があるのはどのナビゲーターであるのかをルールに伝えればよい。残りはそれが対処する。Sample UrlNavigatorRule Example (ビューソース利用可能)
- UrlDelegateRule - このルールは、URLマッピングの一部を別のルール(またはルールのセット)へデベロッパが渡すことができるようにする。これは一般的に使用されているた め、主なアプリケーションが子コンポーネントへマッピングの一部を渡すことができる。そのように、URLはネストされたコンポーネントの状態を反映するこ とができる。これを適切に機能させるためには、次のルールが必要である。UrlRuleSetである。
- UrlRuleSet - このルールは、単一のURLが複数の値で解析されるように、複数のルールを一緒にすることができるようにする。また、どんなやり方で子ルールをURLと一致させたいかを提示することを可能にする。
URLKitについて詳しくは、http://code.google.com/p/urlkit/
を参照のこと。