2012-07-20 60 views
0

我正在處理頁面選項卡應用程序,並且遇到導航問題。我的應用程序用MVC3編寫,顯示和驗證就像一個頁面標籤。當我點擊我的選項卡時,我的應用程序按預期收到帶有signed_request對象的POST。如何在Facebook頁面選項卡應用程序中處理導航

我的問題是,我怎麼能支持我的應用程序鏈接到其他網頁?當用戶點擊鏈接時,我想要在我的應用程序中調用一個動作,並且不要離開Facebook iframe。另外,我需要傳遞signed_request,所以我有一個用戶上下文。

起初,我認爲這是不支持的,所有的頁面標籤應用,必須寫成單頁的應用程序。然而,我發現了一些實際上正在尋找的例子。

點擊圖片:

https://www.facebook.com/Sephora/app_305927716147259

和:

http://woobox.com/pinterest

如何這些應用程序處理iframe中頁面導航?

點擊圖像上的表現似乎是相當糟糕的。他們在幕後做了些什麼,還有更直接的導航方式嗎?

我也將需要處理的帖子。

謝謝。

回答

1

當用戶點擊一個鏈接時,我想要在我的應用程序中調用一個動作並且不離開Facebook iframe。

嗯,這就是正常的HTML鏈接做的 - 所以在這一點:-)

除了不需要額外的努力,我需要沿所以我有一個用戶上下文傳遞的signed_request。

您可以將它作爲每個鏈接的GET參數傳遞 - 但這樣用戶可以很容易地「看到」它,它也可能會轉移到外部服務器(如果有任何外部資源嵌入到您的頁面中)通過HTTP引用。

更好的解決方案恕我直言,是存儲在會話中籤名的請求的服務器端(已經被解析,如果你喜歡),讓您可以訪問它在您的應用程序的頁面。

+0

據我所知,Safari不支持iframe cookies,因此基於cookie的會話存儲已經不存在。傳遞signed_request或者一些新的結構,在每個獲取和發佈過程中似乎是目前唯一的選擇。 – rboarman 2012-07-20 18:15:13

+0

那麼,你可以讓你傳遞的每一個請求的數據也只是一個會話ID。 – CBroe 2012-07-20 19:50:56

相關問題