Symbian Web Runtime:簡単なモバイルアプリケーション開発

この投稿は、「 Smart Posts for Smart Posts 」コンテストに参加しています。

現在、多くのモバイルアプリケーションはHTMLとJavascriptを使用して記述されています。 理解しやすい-このようなアプリケーションは記述しやすく、あるモバイルプラットフォームから別のモバイルプラットフォームに簡単に移行でき、Java、Objective-C、その他の言語を学ぶ必要はありません。 ただし、ほとんどのモバイルオペレーティングシステムでは、何らかのラッパーが必要です。 最も単純なケースでは、組み込みWebブラウザーの最大化されたウィンドウとなる小さなアプリケーションを作成する必要があります。 特別な機能(連絡先やファイルの操作など)をサポートするには、必要な機能をサポートするために追加するか、 モバイルアプリケーションを作成するためフレームワークのいずれかを使用する必要があります 。 いずれにせよ、コンパイラであれ同じフレームワークであれ、特別なツールが必要です。

ただし、Symbian S60 3rd Edition以降のSymbianには、Symbian Web Runtime(WRT)があります。 ほとんどすべてのデスクトップOSの標準ツール(テキストエディターとZIPアーカイバー)のみを使用して、HTMLおよびJavascriptを使用してモバイルアプリケーションを開発できます。 実際、これはモバイルフレームワークでもありますが、既にシステムに組み込まれているため、追加のツールやコンパイルは必要ありません。 それを詳しく見てみましょうか?

こんにちは世界!


最初のレビューでの将来のWRTアプリケーション(またはWRTウィジェット)は、拡張子が.WGZのZIPアーカイブです。 ファイルを含むフォルダーが含まれています(ファイルをアーカイブするだけの場合は、フォルダー内でのみ機能します)。 内部には、info.plistファイルとメインのHTMLファイルが必要です。 推奨サイズが88x88ピクセルのicon.pngファイルもあります。これは、ウィジェットのアイコンとして機能します。 他のすべてはあなた次第です。

info.plistファイル形式は、Appleの形式とほぼ同じであり、 ここで説明します 。 以下に例を示します。

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Nokia//DTD PLIST 1.0//EN" "http://www.nokia.com/NOKIA_COM_1/DTDs/plist-1.0.dtd"> <plist version="1.0"> <dict> <key>DisplayName</key> <string>HelloWorld</string> <key>Identifier</key> <string>com.HelloWorld</string> <key>Version</key> <string>1.0</string> <key>MainHTML</key> <string>index.html</string> <key>MiniViewEnabled</key> <false/> <key>AllowNetworkAccess</key> <false/> </dict> </plist> 
パラメータ種類使用する説明
表示名ひも必須ウィジェットの名前。 電話のメインメニューに表示されます。
識別子ひも必須ウィジェットの一意の識別子。
MainHTMLひも必須メインHTMLファイルへの相対パス。
バージョンひもオプショナルウィジェットのバージョン。
AllowNetworkAccessブール値オプショナルウィジェットにネットワークへのアクセスを許可します。 デフォルトではfalse-ローカルデータのみにアクセスします。
MiniViewEnabledブール値オプショナルウィジェットをデスクトップに追加する機能を提供します。 デフォルトはfalseです。 デバイスがデスクトップウィジェットをサポートしていない場合、このパラメーターは無視されます。

同じフォルダーにindex.htmlファイルを作成する場合、次のように記述します。

 <html> <body>  <h1>Hello, world!</h1> </body> </html> 

そして、このフォルダーをZIPアーカイブに圧縮し、その許可を.WGZに変更すると、Symbian用のアプリケーションが既に取得されます。

それがすべてです。 ページを作成し、それらのJavascriptコードを記述し、ブラウザーでテストし、Symbianのモバイルアプリケーションに簡単かつ簡単に変換できます。 ただし、インターネットからCSSファイルとJavascriptファイルを接続するには、AllowNetworkAccessパラメーターを有効にする必要があります。

ローカリゼーション


ウィジェットを多くの言語に翻訳したい場合は、組み込みのローカライズツールが役立ちます。 とても簡単です。

任意の言語をサポートするには、メインフォルダー内に<language> .lprojという名前のサブフォルダーを作成する必要があります(たとえば、「en.lproj」または「fi.lproj」)。

ウィジェットの名前を翻訳する場合は、infoplist.stringsファイルを作成し、次のような行をその中に入れる必要があります。

 DisplayName = " " 

それ以外の場合、ローカライズプロセスは非常に簡単です。 カスケードスタイルシート、スクリプト、画像、またはその他のリソースを含むファイルをダウンロードする場合、WRTは最初にローカライズされたサブフォルダーで検索し、次にメインフォルダーで検索します。 例:

[メインフォルダー] \ fi.lproj \ flag.png



[メインフォルダー] \ en.lproj \ flag.png



[メインフォルダー] \ flag.png



Javascript

 var flag = document.createElement('img'); flag.setAttribute('src', 'flag.png'); 

その結果、フィンランド語の場合、フィンランド語のフラグが表示されます。英語の場合-英語、その他の場合-紫色です。

WebランタイムAPI


WRT APIについても言及する必要があります。 Symbianと対話することができます。 WRT 1.0にはほとんど機能がありませんが、WRT 1.1以降では、このモバイルOSの多くのサービスを操作できます。 サービスの操作については、以下を参照してください。 完全なドキュメントは、公式ドキュメントのSymbian Web Runtime APIリファレンスページにあります。 以下に、このドキュメントの一部を簡単に翻訳します。 ドキュメントのいくつかのポイントは、単に説明されていないか、物議をかもしていません。そのため、間違いに気付いたら、それについて書いてください。修正します。

Javascriptからアクセスできるいくつかの特別なWRTオブジェクトがあります。

さらに、 画面オブジェクトがサポートされているため、デバイスの画面設定を取得できます。
それらを一つずつ見てみましょう。

ウィジェット

window.widgetまたはウィジェットとしてのみ使用できます。 同時に、単語widgetはWRTで予約されているため、変数または関数の名前として使用しないでください。
ウィジェットメソッドのリスト:

prepareForTransitionおよびperformTransition関数の本質を説明しましょう。 ある要素を非表示または表示したいとします。 これを行うには、elem.style.display = "block"またはelem.style.display = "none"を使用します。 ただし、この表示または非表示をアニメーション化する場合は、その前にwidget.prepareForTransition(「フェード」)を呼び出し、その後にwidget.performTransition()を呼び出す必要があります。

ドキュメントの例を次に示します。

HTML

 <!--   --> <div id='main'> , ! <input type="button" value="Config" onclick="toMain(0);" /> </div> <!--    --> <!--   --> <div id='config'>    , ! <input type="button" value="Main" onclick="toMain(1);" /> </div> <!--    --> 

Javascript

 function toMain(main) { //    widget.prepareForTransition("fade"); if (main) { //        //    document.getElementById("config").style.display = 'none'; //    document.getElementById("main").style.display = 'block'; } else { //        //    document.getElementById("main").style.display = 'none'; //    document.getElementById("config").style.display = 'block'; } //  widget.performTransition(); } 


ウィジェットオブジェクトプロパティのリスト:


ウィジェットのサブオブジェクト:


メニュー

window.menuまたは単なるメニューとして使用できます。 この場合、ワードメニューはWRTで予約されているため、変数または関数の名前として使用しないでください。

このオブジェクトを使用して、アプリケーションメニューを制御できます。 メニューは左側のソフトボタンに割り当てられ、他の(たとえば右側)に再割り当てすることはできません。 左ボタンは「オプション」と呼ばれます(または別の方法でローカライズされています)。 右のソフトボタンは「終了」と呼ばれ、アプリケーションを終了します。 デフォルトでは、ソフトボタンは非表示になり、ユーザーがボタンのいずれかを押すと(デバイスのキーボードで)表示されます。

メニューオブジェクトのメソッドのリスト:


メニューオブジェクトのプロパティのリスト:


MenuItem

メニュー項目。

MenuItemオブジェクトのメソッドのリスト:


MenuItemオブジェクトのプロパティのリスト:


ドキュメントの例:
 //   function menuEventHandler(id) { switch (id) { case 2001: break; case 2002: // -  break; } } //    function createMenu() { //    var optionsMenu = window.menu; //  -   optionsMenu.onShow = function() { //   alert('Event Trigger: optionsMenu.onShow'); } //     var m1 = new MenuItem('', 2001); var m2 = new MenuItem('', 2002); //  -    m1.onSelect = menuEventHandler; m2.onSelect = menuEventHandler; //       optionsMenu.append(m1); optionsMenu.append(m2); //         var m11 = new MenuItem('', 3001); var m12 = new MenuItem('', 3002); //         "" //       id optionsMenu.getMenuItemById(2001).append(m11); //        optionsMenu.getMenuItemByName('').append(m12); //  -    m11.onSelect = menuEventHandler; m12.onSelect = menuEventHandler; } 


装置

window.deviceまたは単にデバイスとして使用可能。 この場合、ワードデバイスはWRTで予約されているため、変数または関数の名前として使用しないでください。

このオブジェクトはWRT 1.1以降存在しており、1つの機能だけでSymbianサービスを操作する大きな機会を開きます。

デバイスオブジェクトのメソッドのリスト:

WRT自体でのSymbianサービスの使用に関するセクションは非常に大きいため、ここでは説明しません。 これがおもしろければ、別の記事で説明できます。 一般的に、ドキュメントは多かれ少なかれ明確であり、各サービスについてすべての機能の詳細な例があります。 ところで、ほとんどの関数には同期オプションと非同期オプションがあるため、アプリケーションの速度は低下しません。

長所と短所


長所:短所:賛否両論はおおよそお互いを上回り、プラスはまだわずかに大きくなっています。

ちなみに、Nokia Browser 8.5ブラウザーを搭載したMeeGo OSに基づく同じNokia N9とNokia N950では、HTML 5 が完全にサポートされています。たとえば、ジェスチャーと加速度計をサポートするCanvasを使用してゲームを作成できます。 確かに、WRTは既に使用されていませんが、HTML 5の機能は使用されています。

読んでくれてありがとう。 エラーの可能性をおaびします。有益なコメントをお待ちしております。

Source: https://habr.com/ru/post/J133900/


All Articles