2

ビューコントローラの1つにWebビューが埋め込まれています。それは600x800のrectを持っています。URLリクエストを行うと、ウェブサーバーに幅768pxと表示されているようです。これは、縦向きのiPad全体の幅です。

HTMLヘッダーにwidth=device-widthが設定されているため、768x ####ページが返され、Webビューの四角形が768未満であるため、Webビューが水平方向にスクロールします。

<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />

このWebビューを設定して、正しい(小さい)幅をWebサーバーに報告するにはどうすればよいですか?

アップデート

webViewDidFinishLoad内のHTMLで幅を設定するコードセットを見つけましたが、それは機能しますが、これを行うためのより良い方法はありますか?ハックのようです。

NSString *jsCmd = @"var viewport = document.querySelector('meta[name=viewport]');";
jsCmd = [jsCmd stringByAppendingFormat:@"viewport.setAttribute('content', 'width=%i, initial-scale=1.0, user-scalable=1');", (NSUInteger)_webView.frame.size.width];
[_webView stringByEvaluatingJavaScriptFromString:jsCmd];

ありがとう

4

2 に答える 2

5

メタ タグでの幅の値の指定をスキップします。

<meta name="viewport" content="initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
于 2013-03-12T18:11:38.937 に答える
0

メタタグはサーバーによって送信され、ブラウザによって解釈されます。デバイスのサイズとして768を使用するのはブラウザ(safari)です-with(これは正しいです)。

解決策は、サーバー側でiframe呼び出しを検出し、次のようなものを送信することです。

<meta name="viewport" content="width=600; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>

サーバー側でiframe呼び出しを検出するには、URLパラメーターを追加するのが最も簡単です。

于 2013-03-12T17:21:32.917 に答える