20

問題なく Safari View Controller を作成できます。

let svc = SFSafariViewController(URL: NSURL(string: remote_url)!, entersReaderIfAvailable: true)
self.presentViewController(svc, animated: true, completion: nil)

ビュー コントローラーをユーザーに提示する前に、URL をプリロードする方法はありますか?

たとえば、最初に URL (Web コンテンツ) をバックグラウンドでプリロードし、ユーザーが何かをクリックした後、コンテンツを含む Safari ビュー コントローラーをすぐに表示できます。ユーザーは、ページの読み込みがより速く、または瞬時に行われると感じます。

PS 回避策/ハックも許容されます。たとえば、キャッシュを使用したり、ビュー コントローラーをバックグラウンドで起動したりします。

編集: SFSafariViewController のみを検討してください。

4

5 に答える 5

4

残念ながら、この動作は の現在の実装ではサポートされていませんSFSafariViewController。この動作のサポートを追加するためにAppleにレーダーを提出することをお勧めしますが、他の人が提案したようWKWebViewに、階層に追加される前に使用してロードを開始することをお勧めします.

Twitter から、あなたが求めていることを実際に正確に言及している素敵なレーダーに出会いました。次のリクエストが役立つと思います。

高優先度: - URL、URL 要求、HTML データ、またはディスク上のファイルを実際に提示する前に、SFSafariViewController をウォームする機能 - 現在、ユーザーがそのツイートにヒットした場合に優先度の高いツイートの共有 URL キャッシュをウォーミングすることに多額の投資を行っています。事前にキャッシュされた Web ページで UIWebView (残念ながら WKWebView ではありません) を開きます。目的のリンクで SFSafariViewController をウォームアップできれば、膨大な労力を省くことができます。

WKWebView はキャッシュのセマンティクスを少し難読化しているように見えるため、実装では UIWebView を使用して応答をキャッシュするだけであることがわかります。唯一のリスクは、 「iOS 8 以降で実行されるアプリでは、UIWebView を使用する代わりに WKWebView クラスを使用する」というドキュメントに記載されているように、UIWebView が非推奨の候補である可能性が高いことです。

残念ながら、これをすべてやり遂げるには、飛び越えなければならない多くのフープがあるようです.

于 2016-02-09T07:56:58.517 に答える