簡體   English   中英

從UIWebView可靠地打開App Store鏈接

[英]Reliably opening App Store links from a UIWebView

我有一個應用程序,將在UIWebView中顯示網頁。 它顯示的頁面可能包含App Store上其他iPhone應用程序的鏈接。

在桌面計算機上的普通瀏覽器中,單擊這些App Store鏈接將帶我瀏覽多個URL重定向,最終打開iTunes並將我帶到該應用程序的頁面。

有沒有辦法確保在我的UIWebView中單擊App Store鏈接時,iPhone上的App Store應用程序將打開並顯示應用程序?

我在測試中看到的是,有幾種類型的鏈接可以導致App Store頁面,其中包括:

  • phobos鏈接 - phobos.apple.com/etc等
  • itunes.com/app/appname鏈接
  • 推薦/會員鏈接
  • 任何我不知道的

當我在桌面瀏覽器中打開任何這些鏈接時,它們將工作並最終打開iTunes。 當我從iPhone中打開任何這些鏈接時,UIWebView會經歷許多重定向,最終會發生以下兩種情況之一:

  • 重定向不能正常工作,我最終得到一個頁面確實無法加載方法調用
  • 重定向工作,iTunes應用程序打開,搜索應用程序名稱,然后我從iTunes收到一條消息,說明它無法連接到商店。

我唯一能夠讓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時有問題(可能是因為模擬器沒有它)。 在設備上運行應用程序將在此特定區域中產生不同的行為,因此請確保您在那里進行測試。

我一直在嘗試做同樣的事情。 我想在免費版本中添加指向我應用完整版的鏈接。 我剛剛確認文檔中使用的方法有效。 僅適用於實際設備。 永遠不要相信模擬器!

添加文檔的內容 ,並像這樣調用它:

NSString *testLink = @"http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284417350&mt=8";   

self.iTunesLink = [NSURL URLWithString:testLink];

[self openReferralURL:iTunesLink];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM