0

UIWebView オフライン内に KRPano パノラマをロードする iOS アプリを作成しています。これは、KRPano ファイル構造 (index.html + データ ディレクトリ) を iOS プロジェクト内にコピーし、Swift コードを使用してファイルをロードしようとしていることを意味します。

//load a file
guard let urlResource = NSBundle.mainBundle().URLForResource("index", withExtension: "html") else {    
    print ("error")
    return
}
let webRequest = NSURLRequest(URL: urlResource)
webView.loadRequest(webRequest)

パノラマがリモートの場所からロードされた場合に機能します。何が問題なのですか?

4

1 に答える 1

1

Krpano ファイルを手動で編集しないと不可能です。私たちのアプリ ( Offline Pages Pro ) では、ネットワークからダウンロードされた JavaScript ドキュメントを自動的に修正することで、この問題を解決しました。私たちの実装は非常に複雑ですが、最終的には Krpano ツアーをオフラインで閲覧できるようになります。

問題は、Krpano HTML5 ビューアが XMLHttpRequests を使用してコンテンツをロードすることです。コンテンツがローカル (つまり file:// ) の場合、XMLHttpRequest も成功する可能性がありますが、Krpano が期待する HTTP ステータス コード 200 は生成されません。

NSURLProtocol を実装して XMLHttpRequests をオーバーライドすることができます。IOS 9 では動作する可能性がありますが、iOS 8 では、XMLHttpRequests が NSURLCache と NSURLProtocol を完全にバイパスするため、動作しませんでした。

于 2016-05-21T09:41:00.173 に答える