メソッドUIWebView
を壊さずにカスタムHTMLをロードするのに問題があります。goBack
何が機能するか
UIWebView
カスタムHTMLをロードできるように、自分のURLリクエストをインターセプトしています。私はすべてのHTMLを制御できるので、特別なアプリリクエストmyapp://arg1/?arg2=val
で解析可能なカスタムスキーム(つまり)を使用するようにしていwebView:shouldStartLoadWithRequest:navigationType:
ます。本当にロードして呼び出し、元のリクエストをキャンセルするためにloadHTMLString:baseURL
戻るHTMLを決定します。NO
動作しないもの
上記はうまくいきます。UIWebView's
goBack
問題は、このメソッドを利用したいので、履歴スタックに追加するloadRequest:
唯一のメソッドのように見えることです。UIWebView
私にはいくつかのアイデアがありますが、どれが実行可能で、どのようにそれらを実行するのかわかりません。YES
主なことは、私が戻って来なければならず、の方法webView:shouldStartLoadWithRequest:navigationType
を使わなければならないということのようです。UIWebView
loadRequest
アイデア1:NSURLRequest /Responseを変更する: (UIWebViewがリクエストを行うときに)実際にHTTPリクエストを行わず、HTMLを含むNSURLResponseを返すようにNSURLRequestをサブクラス化できますか?または、何らかの方法でNSURLResponseにカテゴリメソッドを変更/サブクラス化/追加しますか?私はそれが本当のリクエストであるという考えが好きですが、プライベートAPIが心配で、AppStoreから拒否されます。
アイデア2:カスタムURLプロトコルを処理するカスタムURLプロトコル を登録して、アプリがそれに応答し、正当なNSURLResponse(カスタムHTMLで埋められている)を返すようにします。
アイデア3:キャッシュをだますこのキャッシュポリシーNSURLRequestReturnCacheDataDontLoad
を使用してリクエストを作成し、WebViewとキャッシュの間にHTMLを挿入しますか?
それとも私は完全に間違った方向に進んでいますか?