リンクをブラウザで開く

ガジェット作成していてリンクをクリックしたら
ブラウザでそのURLを開きたいとき。
Mac OS X Dashboard ウィジェット、Adobe AIRだけは
拡張APIを呼んであげなければいけません。
JavaScriptからブラウザを開きたいときにはわかるんだけれども
“aタグ”で記述しているんだからそれを解釈してよと思います。

ちなみにリンクをブラウザで開く拡張APIは下記となっております。
 Windows サイドバーガジェット: <aタグ> または System.Shell.execute(url);

 Opera ウィジェット: <aタグ> または window.open(url);

 Mac OS X Dashboard ウィジェット: widget.openURL(url);

 Adobe AIR: air.navigateToURL(new air.URLRequest(url));

 iGoogle ガジェット: <aタグ> または window.open(url);

 Google デスクトップ ガジェット: <aタグ> またはframework.openUrl(url);

 Yahoo!ウィジェット: openURL(url);

ガジェットプラットフォームの違いについて

ガジェット、ウィジェットは基本はXML(HTML)と
JavaScriptで記述していくのですが
設定情報の保存などの特殊な処理は各種ガジェットプラットフォームにて
拡張APIを提供してくれています。
Opera ウィジェットとMac OS X Dashboard ウィジェットは
結構似ているのですがその他はバラバラです。
一つに統合してほしいです。

Opera ウィジェットはその上、拡張API少なすぎ。

そしてWindows サイドバーガジェット、
Google デスクトップ ガジェットにはonDock、unDockというのがあります。
要するにサイトバーとして表示されているガジェットプラットフォームでは
ガジェットがサイトバーに納まっているときにはonDockで
サイトバーから外されたときがunDockとなります。
当然イベントが取れるわけでunDock時には
大きさを変更することもできます。

また、Windows サイドバーガジェットではflyoutというのもあります。
サイドバーの横っちょに表示することができるのです。
通常は表示していなくてボタンを押下されたら
にょきっと表示するってことです。
びみょーな機能です。

sdlsdkでSilverlight2.0を作成

Silverlightを用いたガジェットをつくるときにいろいろ悩んだけれども
結局はSilverlight Dynamic Languages SDKを使って
JavaScriptに似た? Managed JScriptを選択して作成しました。
王道はC#でごしごし作っていく方が良いんだろうけれども
改めてC#を覚えるのとその環境がないのと
既存のJavaScriptを有効活用したかったので。

eclipse4slを使えばできると思うけれども挫折しました。。
作ったけれどもちょっと強引になった。
Managed JScriptを複数ファイルに分ける方法
知っている人いたら教えてくださいー。
分らなかったので1ファイルにまとめちゃいました。
あっ。ローカライズの方法も。。

そしてブリッジdllが結構ファイルサイズが大きいです。
これはしょうがないのかな?

下記のサイトも参照してください。
 Silverlight Dynamic Languages SDK: http://www.codeplex.com/sdlsdk
 eclipse4sl: http://www.eclipse4sl.org/

Silverlight2.0を用いたWindows サイドバーガジェット

Silverlightを用いてWindows サイドバーガジェットを作成したのですが
最初動かしたときにあまりにもおかしくてびっくりしました。
シングルクリックでフォーカスが当たって、
ダブルクリックでボタン押下イベント発生なんて。。
結局これはiframeにSilverlightのオブジェクトを埋め込んだら治りました。
なぜだか。

そしてSilverlightでのXAPの指定の仕方も
ガジェットだと特別なのです。
“x-gadget:///”をつけないと動いてくれません。
なぜだか。
なので下記のように設定します。

 <div id=”silverlightControlHost”>
  <object data=”data:application/x-silverlight,”
          type=”application/x-silverlight-2″
          width=”130″ height=”163″
   >
   <param name=”source”            value=”x-gadget:///foo-sl.xap”/>
   <param name=”onerror”           value=”onSilverlightError” />
   <param name=”background”        value=”#00000000″ />
   <param name=”minRuntimeVersion” value=”2.0.31005.0″ />
   <param name=”autoUpgrade”       value=”true” />
   <param name=”initParams”        value=”reportErrors=errorLocation,GADGET_ENGINE=vista” />
   <param name=”windowless”        value=”true” />

   <a href=”http://go.microsoft.com/fwlink/?LinkID=124807
      style=”text-decoration: none;”
   >
    <img src=”http://go.microsoft.com/fwlink/?LinkId=108181
         alt=”Get Microsoft Silverlight” style=”border-style: none”
    />
   </a>
  </object>
  <iframe style=’visibility:hidden;height:0;width:0;border:0px’></iframe>
 </div>

Windows サイドバーガジェットでの設定画面について

Windows サイドバーガジェット、Opera ウィジェット、
Mac OS X Dashboard ウィジェット、Adobe AIR、iGoogle ガジェット、
Google デスクトップ ガジェット、Yahoo!ウィジェットと
結構多種にわたってガジェットを作成しているのですが
Windows サイドバーガジェットだけ設定画面は
別HTMLで行うことを推奨しているんですよね。
なるべく同じファイルで複数ガジェットプラットフォームで動くものを
作ろうとしたのでこれで苦労しました。
結局はiframeに設定ファイルを埋め込んで行っているのですが
同じwindowでないとうまく動かなかったりして。
今後は設定画面もメイン画面とおなじHTMLにして
Windows サイドバーガジェットだけは別にする方が苦労しなさそうです。

卒業

2009/03/04(水)に長渕剛のニューシングル”卒業”が発売されます。
なかなか良い唄に仕上がってます。
それよりもその先にあるアルバム、ライブのほうがより楽しみですが。