0

モバイル版ではなくデスクトップ版の Web サイト (Google、Facebook など) を読み込むにはどうすればよいですか?

4

2 に答える 2

3

なぜあなたはこのすべての面倒を経験しているのですか?これは間違った/長いアプローチです。

を作成し、ではなくその中にNSMutableRequestを設定するだけです。次に、通常の/非プライベート関数でリクエストをロードします。useragentUIWebViewUIWebViewloadRequest:

于 2012-10-07T06:58:30.843 に答える
2

編集:これはすべて無視してください。ヤニフの権利。メッセージを使用NSMutableURLRequestして をUIWebViewインスタンスにロードし、ヘッダーを必要なものに設定するだけです。- loadRequest:"User-Agent"

NSMutableURLRequest *rq = [NSMutableURLRequest requestWithURL:someUrl];
[rq setValue:@"Some desktop user-agent" forHTTPHeaderField:@"User-Agent"];
[webView loadRequest:rq];

参考までに、デスクトップ ユーザー エージェント文字列の適切な選択は Chrome の文字列です。これも Safari と同様に WebKit ベースであるため、WebKit 固有の拡張機能が機能します。したがって、ユーザーエージェント文字列を次のように設定してみてください

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (Gecko のような KHTML) Chrome/23.0.1271.6 Safari/537.11


元の投稿:

UIWebView のユーザー エージェントのスプーフィングを試すことはできますが、そのようなファット ハックで AppStore の薄いゲートを通過できるかどうかは保証できません...

void *object_getIvarPtr(id obj, const char *name)
{
    Ivar iv = object_getInstanceVariable(obj, name, NULL);
    off_t offset = ivar_getOffset(iv);
    return (char *)obj + offset;
}

// In some initialization routine, after having created the web view
id webViewInternal = *(id *)object_getIvarPtr(someWebView, "_internal");
id webBrowserView = *(id *)object_getIvarPtr(webViewInternal, "browserView");
id webKitWebView = [webBrowserView webView];

NSString *desktopUAStr = @"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.6 Safari/537.11"
[webKitWebView setCustomUserAgent:desktopUAStr];
于 2012-10-07T04:59:44.347 に答える