Join Now
Quality Rating:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)
Expertise Level:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)

This page was last modified 07:55, 6 June 2008.

Web Runtime Widgetsで自己更新機構を作る方法

From Forum Nokia Wiki


原文(英語): How-to create self-updating WRT widgets

対象となるバージョン: Web Runtime in S60 3rd Edition, Feature Pack 2

Contents

解説

S60 Web Runtime Widgets で更新操作を行う最も簡単な方法は、アプリケーションによりバージョンをチェックすることです。Widgetバンドル中の変数が現在のバージョンを示すため、サーバ側との比較により、それを確認することができます。この方法はPure JavaScript実装を使うので、プログラムの拡張やプラットフォームに依存した手法を必要としません。

コード例の設定について

以下の例では、サーバーのURLを http://myexample.versionservice.com:8888 と想定しています。サーバーは、versionタグつきXMLドキュメントを含んだバージョン情報のリクエストに対し、バージョン情報を返します。この例は、容易に拡張することができます。例.バージョン情報のレスポンスに、更新URLを含めること

コード例

/*
 * version server url, and current version
 */
var versionURL = "http://myexample.versionservice.com:8888";
var currentVersion = 1;
 
var reqVersion = null; 
 
/*
 * called e.g. during app startup or once a day
 */
function checkForUpdate()
{
  /*
   * asynch XHR to server url
   */
  reqV = new XMLHttpRequest();
  reqV.onreadystatechange = checkVersion;
  reqV.open("GET", versionURL, true);
  reqV.send(null);
 
  document.getElementById("updateDIV").innerHTML = "checking for updates";
}
 
/*
 * parse response and check version
 */
function checkVersion()
{ 
  if (reqV.readyState == 4)
  {
    if (reqV.status == 200)
    {
      /*
       * little overhead here, one could use also string for version info
       */
      var newVersion = reqV.responseText;
      if (currentVersion != newVersion)
      {
        document.getElementById("updateDIV").innerHTML =
        "<a href=\"http://www.taika.org/~jario/newversion.wgz\">
        Download new version</a>";
      }
      else
      {
        document.getElementById("updateDIV").innerHTML = 
        "No new versions available";
      }
    }
    else
    {
      alert( "connection error" );
    }
  }
}

メインHTMLの例

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <script type='text/javascript' src="selfupdate.js"></script>
  </head>
  <body onload="checkForUpdate();">
 
    <div id="updateDIV"></div>		
 
  </body>
</html>
 
Powered by MediaWiki