web-dev-qa-db-ja.com

UIWebViewの「Frame Load Interrupted」エラーを解決するにはどうすればよいですか?

契約しているアプリで、YouTube動画のリストを取得して、アプリに表示できるようにしています。ただし、ユーザーがYouTubeビューのナビゲーションコントローラーのセルをタップし、UIWebViewが表示されたモーダルビューが表示されると、UIWebViewから「フレームの読み込みが中断されました」というエラーが返されます。

デバッガーで何十回も実行しましたが、NSURLRequestを初期化するまで、すべてがうまくいくようです。モーダルビューが表示されると、ViewControllerの-viewDidLoadメソッドで実行されるコードは次のようになります。

- (void)viewDidLoad
{
    [super viewDidLoad];
    _webView = [[UIWebView alloc] init];
    _webView.delegate = self;
    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:_url];
    [_webView loadRequest:request];
}

ただし、[_webView loadRequest:request];という行でデバッガーをプルアップすると、次のようになります。

enter image description here

UIWebViewがエラーを返す理由を誰かが知っていますか?

16
amarkon

URLパスを確認する必要があります
@ "google.com"ではなく@ " http://google.com "にする必要があります

6
Hai Hw

私は同じ問題を抱えていますが、私の場合、MIMETypeが正しく設定されていないことがわかります。

URLからのリクエストを使用してNSURLConnectionを手動で作成してテストし、実装しました。

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response

接続からの応答コールバックを観察します。レスポンスのMIMEType"pdf/pdf" の代わりに "application/pdf,"そして、私がその問題を修正するとすぐに、webviewは正常にURLをロードしました。

お役に立てれば。

4
user3225101

使用しているURLはおそらくユーザーエージェントを認識していません。これは古いiOSバージョンでも発生していた問題でしたが、iOS 7で戻ってきたようです。これをアプリのデリゲートdidFinishLaunchingWithOptionsに追加してみてください。

NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3", @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
1
Nikos M.

IOS 10.2.1 UIWebViewでも同じ問題に直面しました。

パスURLを含むPDFファイルを要求するとき

pDFファイルのMIMETypeは「application/x-pdf」です。

「application/pdf」に変更してこれを読むことができます

1
Kernelzero

https://www.google.com または http://www.google.com を使用します

実際にはhttps://がキーワードです。

1
Premal Khetani

シミュレータまたは実際のデバイスでこれを行いましたか?私はシムで同じ問題がありましたが、それはデバイスで動作しました:)

0
Jonathan Brown

MIMEタイプを追加または修正すると問題が修正されると報告した人と同様の問題がありました。私の場合、ファイル拡張子のないローカルファイル(「my-dir/my-file」など)を開こうとすると、("Frame Load Interrupted"とともに)恐ろしい"Unbalanced calls to begin/end appearance transitions for UIViewController"エラーが発生しました。ファイル拡張子(「my-dir/my-file.pdf」など)を追加すると、問題が解決しました。

0
sherb

frame load interruptedエラーが表示されている理由は、www.youtube.comm.youtube.comへのリダイレクトを実行しているためです。UIWebViewはこれを好みません。乱暴に推測するために、セキュリティへの影響の可能性を挙げますか?この問題を解決するには、モバイルサイトに直接リンクし、youtubeでリダイレクトする必要をなくしました。

0
dave