Możliwe obejście jest zwrócić się do pulpitu-mode na stronie internetowej, która będzie się wyświetlać jako zamierzoną treść zamiast przekierowanie.
Korzystanie UIWebView:
UserDefaults.standard.register(defaults: ["UserAgent": "Custom-Agent"])
Upewnij się zarejestrować ten niestandardowy środek przed ładowania URLRequest
. Zauważ, że ta metoda miałaby zastosowanie do wszystkich obiektów UIWebView
w Twojej aplikacji. Jeśli chcesz, aby tylko niektóre widoki ładowały wersję na komputery, musisz użyć WKWebView
w następujący sposób, ponieważ umożliwia to użycie niestandardowego agenta dla każdego obiektu.
Korzystanie WKWebView:
Po pierwsze, musisz import WebKit
. Następnie zainicjować to tak:
let url = URL(string: "https://itunes.apple.com/us/album/burn-that-broken-bed/id1120162623?i=1120163074&uo=4")!
let wkWebView = WKWebView(frame: self.view.frame, configuration: WKWebViewConfiguration())
wkWebView.uiDelegate = self // Optional line - must conform to WKUIDelegate
// the line below specifies the custom agent, which allows you to request the desktop version of the website
wkWebView.customUserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36"
wkWebView.load(URLRequest(url: url))
self.view.addSubview(wkWebView)
Update: (Integracja WKWebView)
Niestety, nie możesz dodać WKWebView w IB jak z XCode 8, więc trzeba go dodać programowo. Dobrą wiadomością jest to, że można użyć frame
z UIWebView utworzony w IB do nieco złagodzić programową instancji obiektu WKWebView
to sprawdzić: (kod niesprawdzone)
// for ease of use
extension WKWebView {
func setDesktopMode(on: Bool) {
if on {
customUserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36"
return
}
customUserAgent = nil
}
}
iw swoim niestandardowy plik komórka
class MyCustomCell: UICollectionViewCell {
var wkWebView: WKWebView! // add this line
@IBOutlet weak var webView: UIWebView! // the one you created in IB
}
Następnie w UIViewController
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "CellIdentifier", for: indexPath) as! MyCustomCell
let url = URL(string: "url here")!
cell.wkWebView = WKWebView(frame: cell.webView.frame, configuration: WKWebViewConfiguration()) // using the webView's frame that was created in IB
cell.wkWebView.uiDelegate = self // Optional line - must conform to WKUIDelegate
cell.wkWebView.setDesktopMode(on: true) // true = loads desktop mode (for your iTunes URLs)
cell.wkWebView.load(URLRequest(url: url))
return cell
}
Jakiś konkretny powód, dla którego chcesz pokazać to w widoku internetowym? Jeśli nie, zawsze możesz użyć okna podręcznego SKStoreProductViewController, które wyświetli aktualną stronę aplikacji i przycisk, aby ją zainstalować. –
Przedstawiam widok kolekcji odsłon stron, a linki do iTunes należą do jednego z typów komórek, które chcę wyświetlać użytkownikowi, tj. Wraz z SoundCloud YouTube Spotify itp. – GarySabo