unshiu

最近の更新履歴

開発仕様‎ > ‎

mixi画面遷移仕様


mixiアプリ内での画面遷移仕様に関してまとめます。

前提事項

OpenSocialアプリは gadget.xml をつねに出力するので通常のWebアプリのような画面遷移はできません。

unshiuでの解決方法

unshiuではjsでつねにあるdivタグのhtmlを置き換えることで遷移処理相当のことを行っています。しかしそれだけだと戻るボタンを押された際に前のページに戻ることができません。これを克服するために jquery.history.js を用いています。
※jquery.hisotry.jsに関してはmixiアプリ用にいくつか修正しているのでオリジナルそのままではありません。

実装

canvasページを表示する際に履歴の初期化をします。

 $.historyInit(pageload, "/mixi_gadget/top");

link_to_updateは以下のjsが自動的に付加され履歴として保持されます。もしlink_to_update以外で遷移が発生した場合は別途処理前に追加してください。

 $.historyLoad('遷移URL');

なお履歴に保存されたくない場合は以下のように history オプションで保存しないようにすることも可能です。

 link_to_update("link", {:url => "/mixiapp/user", :history => false})

対応ブラウザ

  • IE6
  • IE7
  • IE8
  • Firefox3
  • Opera9
以下のブラウザは遷移はできますが、戻ることができません。
  • safari4
  • chrome

その他

ブラウザの「戻る」ボタンを押した際のbeforeunloadイベントを感知して処理することで同様のことはIEでは可能です。しかしIE以外のブラウザではbeforeunloadイベントでの処理において前のURL以外へ遷移させることなどはセキュリティ的に問題があるとされて禁止されています。よってアラートを出すことしかできません。

参考URL