AS3ライブラリの BrowserUtility クラスをリリースしました
BrowserUtility クラスとは
Flashからブラウザ上の情報……例えばURLやブラウザの種類の判定などを行う場合、FlashのAPIとしては直接操作できないんですよね。
なので、Flash→JSのライブラリである、ExternalInterfaceってのを使わなくてはいけない。
で、毎回必要にせまられて、ピンポイントな動作だけ書くのも面倒というかDRYじゃないので、ライブラリにしちゃえば良いじゃん、という流れです。
BrowserUtility について
簡単な説明
まず、このライブラリでは三つのクラスを提供します。
- BrowserUtility ライブラリのメインクラス
- Browser ブラウザ、バージョン判定用クラス
- Location JS の window.location 相当のクラス
ただし、BrowserUtility のクラス以外は直接使用することはないでしょう。
主なクラス
import com.github.sugamasao.browser_utility.*; BrowserUtility.browser.isIE // true or false BrowserUtility.browser.version // 8 BrowserUtility.location.href // http://example.com
上記のように、BrowserUtilityクラスの static メソッドを呼ぶことで、内部でクラスを生成されます。
また、一度ExternalInterfaceで取得したデータはキャッシュされるので、メソッドを呼ぶ度にExternalInterfaceが実行されるようなことはありません。
ただし、明示的にExternalInterfaceを使用して取得しているデータを更新したい場合は以下のようにします。
import com.github.sugamasao.browser_utility.*; BrowserUtility.refreshBrowser.isIE // true or false BrowserUtility.refreshLocation.href // http://example.com
refresh〜のメソッドを使用することで、ExternalInterfaceによるデータの取得を改めて行います。
Browserクラスによるブラウザ判定対応
以下のブラウザを判定します。
またバージョン情報についても、一般的なメジャーバージョン・マイナーバージョンは拾えています。
例えば、Safari ならば 1.0 1.1 1.2 2.0 3.0 ... といった具合です。
Location クラスで取得できる情報
JSによる window.location.hogehoge で取得できるものとまったく同一です。
最後に
ブラウザ判定のテストデータとして、下記のページのユーザエージェント一覧を使用させて頂きました。感謝です。
というわけで、興味がわいた方は、BrowserUtilityを使ってみてください。