[英]Reliably opening App Store links from a UIWebView
我有一個應用程序,將在UIWebView中顯示網頁。 它顯示的頁面可能包含App Store上其他iPhone應用程序的鏈接。
在桌面計算機上的普通瀏覽器中,單擊這些App Store鏈接將帶我瀏覽多個URL重定向,最終打開iTunes並將我帶到該應用程序的頁面。
有沒有辦法確保在我的UIWebView中單擊App Store鏈接時,iPhone上的App Store應用程序將打開並顯示應用程序?
我在測試中看到的是,有幾種類型的鏈接可以導致App Store頁面,其中包括:
當我在桌面瀏覽器中打開任何這些鏈接時,它們將工作並最終打開iTunes。 當我從iPhone中打開任何這些鏈接時,UIWebView會經歷許多重定向,最終會發生以下兩種情況之一:
我唯一能夠讓App Store應用程序打開的方法是使用應用程序的直接iTunes鏈接,無需任何推薦或重定向。
顯然,對於推薦或聯盟鏈接,我不想刪除推薦ID或聯盟ID。 如果是他們點擊的鏈接,我不應該剝奪他們的推薦。
所以任何幫助將不勝感激。
謝謝。
我發現Apple的技術問答回答了我的問題:
基本要點是這樣的:
正確構建的phobos.apple.com鏈接將直接重定向到App Store應用程序。 itunes.apple.com鏈接必須轉換為phobos鏈接。 必須使用NSURLConnection遍歷推薦/會員鏈接,最終得到的URL將是可以使用的phobos鏈接。
謝謝你的幫助。
在我的測試中,我只有phobos.apple.com
鏈接自動重定向到AppStore(沒有任何Safari重定向)。
除了開發人員文檔之外 ,我認為他們應該在redirectResponse
nil
。 我花了一些時間來弄清楚出了什么問題。
// Save the most recent URL in case multiple redirects occur
// "iTunesURL" is an NSURL property in your class declaration
- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response {
if (response) {
self.iTunesURL = [response URL];
}
else {
self.iTunesURL = [request URL];
}
return request;
}
如果你還沒有在實際設備上測試過這個,我可以告訴你,iPhone模擬器在將這些鏈接重定向到App Store時有問題(可能是因為模擬器沒有它)。 在設備上運行應用程序將在此特定區域中產生不同的行為,因此請確保您在那里進行測試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.