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