2011-03-07 280 views
0

我有一個相當標準的ASP.Net Web應用程序,它通過iPhone上的移動Safari瀏覽器使用。IPhone Safari 302重定向打開新窗口

一些通過配置文件鏈接到桌面應用程序的用戶報告說,在頁面之間導航時(我在服務器上使用Response.Redirect在特定事件之後或通過其他情況下的標準錨標記(沒有指定目標))Safari會打開一個新窗口,而不是重新使用現有的窗口。因此,任何登錄令牌/ cookie等(我正在使用內置的ASP.Net成員資格),現在已消失,爲新的瀏覽器窗口,並顯示登錄提示。

的問題不會發生每一次,我似乎無法複製它在我的設備上(但我不是通過部署配置文件中的快捷方式)

正如你可能想象,這是相當令人沮喪用戶必須每次都登錄,並且無法解決無法複製的問題。

我的問題是,有沒有人聽說過這個問題和/或知道解決方法? 該應用程序不是iPhone專用的,也就是說,它也用於完整的桌面瀏覽器,並且登錄保持您所期望的那樣 - 並且同一個窗口被重複使用。

我已經考慮了一些可能性,但一直在繪製一個空白,至於什麼可能導致這種情況或我如何解決它。

回答

0

你有任何的iPhone元標記設置(例如刪​​除網址欄或工具欄?)如果你這樣做,手機會認爲它是一個本地的網絡應用程序,並且網址將在一個新的Safari瀏覽器窗口中打開,就像他們對任何其他原生應用程序一樣。

+0

就以下事項: <鏈接相對= 「蘋果觸摸圖標的」 href = 「AA-iphone-logo.png」/> 您是否認爲視口元將它視爲本機應用程序,因此,任何鏈接(不是302重定向,但實際錨點擊)都會成爲新窗口? – agrath 2011-03-07 07:08:53

+0

其中一個部分實際上是iPhone優化的,它使用了幾個元素 - 但該問題也發生在其他網頁上,以及..據報道。 當我從手機上的Safari瀏覽器窗口(而不是桌面快捷方式)打開應用程序時,我無法複製該問題 - 始終保持在同一窗口中 – agrath 2011-03-07 07:11:33

+0

此問題看起來類似:http://www.coldfusionjedi.com /指數。cfm/2008/10/9/Two-iPhone-development-tips-and-jQuery-to-the-rescue,但是他已經通過Ajax將href的內容加載到頁面的div中解決了它 - 如果我返回完整頁面(一個典型的錨點會返回),那麼我們最終會在隨後的導航中在內容div中嵌入HTML/HEAD/BODY等標籤。 將整個應用程序轉換爲ajax頁面加載也不是真正的選擇。 – agrath 2011-03-07 07:20:16

0

如果您正在全屏模式下使用網絡應用程序(將其添加到本機應用程序旁邊的啓動屏幕中),您可以防止它跳出全屏模式,並通過Safari瀏覽器替換類型鏈接與JavaScript。

location.href = '/yourPath'; 

這是一個極好的技巧,如果您鏈​​接到外部URL,就像做一個OAuth到Facebook和背部甚至工作。

我對這個在這裏博客文章:http://www.aaroncoleman.net/post/2011/07/29/Keeping-iPhone-Web-App-in-Fullscreen-mode-from-Homescreen-Launcher.aspx