WebアプリケーションのAdobe AIRへの移植

この記事では、JavaScriptで作成されたWebアプリケーションをAdobe AIRアプリケーションに移植する例を見ていきます。

まず第一に、Adobe AIRの出現とExtJSのAIRへの移植の最初の例以来、JavaScriptで記述されたWebアプリケーションをAIRアプリケーションに変換するのがどれほど難しいか簡単かという考えに悩まされました。 数日前、実験する時間がありました。



最初のステップは、AIRアプリケーションを開発するためのSDKをダウンロードすることでした。 インターネットをサーフィンした後、AIRで最初のアプリケーションを作成する方法の例をいくつか見つけました。



移植のために、私は最後の作品の1つを選びました-これはWebアプリケーションwww.datamash.usです。 Datamashはウィジェット用のYouTubeです。 ウィジェットはメディアの新しい形になりましたが、これまでのところ、作成できるのはプログラマだけです。 データマッシュは、一般の人々がウィジェットなどの新しい形式のコンテンツを管理し、内部データストリームを組み立てて接続し、公開を容易にするのに役立ちます。 Datamashクライアントインターフェイスは、FullajaxとExtJSの混合で実装されます。 PHPのサーバー側。



私は次のタスクを設定しました-ローカルファイルシステムからインターフェイス全体を起動するが、インターネットからビジネスデータを取得するアプリケーションを作成する。 単純なものから複雑なものへと移行する実験を開始し、1時間で最初のAIRアプリケーションをコンパイルしました。 AIRサンドボックスにはJavaScriptの実行に制限があることがわかりました。1つはJSON応答からオブジェクトをアセンブルするために必要なevalの実行、2つ目は動的に接続されたスクリプトの作成と実行です。 サンドボックスセキュリティに関する情報を検索した後、 labs.adobe.com / wiki / index.php / AIRの非常に包括的な情報を見つけました:HTML_Security_FAQ。 少し考えて、AIRサンドボックスのセキュリティに制限されないアプリケーションを作成することにしました。 そのような機会が存在することが判明し、それは嬉しい驚きでした。 これを行うには簡単です。追加の属性を使用して、iframeにアプリケーションページを読み込む必要があります。

<iframe id="UI" style="width:100%;height:100%;border:0" frameborder="0"

src="/chips/index.html"

sandboxRoot="http://www.datamash.us/"

allowCrossDomainXHR="true"

documentRoot="app:/">







どこで

sandboxRoot = http://www.datamash.us/-サンドボックスエリアを定義します

allowCrossDomainXHR = "true"-クロスドメインリクエストの解決を示します

documentRoot = "app:/">-相対パスのベースの場所を示します



したがって、ローカルファイルシステムからインターフェイスをロードするアプリケーションを取得しました。

重要な点は、開発の最初の段階でWebアプリケーションのAJAXリクエストのすべてのパス設定を別のファイルに入れて、これが時間を節約したことです。 構成ファイル内のすべてのパスを外部サイトに再定義するだけで十分であり、すべてが正常に機能しました。

...

var URL_LOGIN = 'http://datamash.us/system/login.php';

var URL_FOLDERS_LIST = 'http://datamash.us/system/folders.php';

var URL_OBJECT_LIST = 'http://datamash.us/system/objects.php';

var URL_OBJECT_JUMP = 'http://datamash.us/system/jump.php';

...





したがって、AJAXリクエストのすべてのパスを個別の構成ファイルに配置することをお勧めします。

2時間、いじくり回した問題が1つありました。 問題は、最初にAJAXリクエストでサーバーから空の応答を受け取ったことです。 すべてが正しく行われたので、長い間、なぜだろうと思っていました。 問題はこれでした:iframeの場合
sandboxRoot = http://www.datamash.us/およびパスで規定されているwww.datamash.us
または
sandboxRoot = http://datamash.us/およびパス内の規定されたdatamash.us
空の答えが返ってきました。 すべてが指示された場合にのみ機能しました
sandboxRoot = http://www.datamash.us/およびdatamash.usパス
奇妙なバグ。



合計で、ローカルファイルシステムから実行され、インターネットからビジネスデータを取得するWebアプリケーションがあります。 WebアプリケーションのAIRアプリケーションへの移植は、比較的簡単で高速でした。 個人的には、AIRテクノロジーが好きでした。

datamash.airをダウンロードしてインストールすることで、動作中のアプリケーションを見ることができます



PS:私の同僚は、AIRの方向性に重要なポイントを示しました。このテクノロジーには、アプリケーションの自動更新メカニズムがありません。 つまり たとえば、ローカルファイルシステムからもう一度開始し、外界でより新しいバージョンのインターフェイスを発見した場合、AIRが新しいバージョンのコンテンツをローカルファイルシステムに自動的にダウンロードし、新しいインターフェイスで次回起動できると便利です。 アドビがこの機能を追加することを期待しましょう。



All Articles