4

これまでに行ったこと: 以下のコードを使用して、プロジェクトの UIWebView で User-Agent を変更します。

NSDictionary *userAgentReplacement = [[NSDictionary alloc]           initWithObjectsAndKeys:userAgent, @"UserAgent",nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:userAgentReplacement];

問題:このコードは機能していますが、関数を再度呼び出して UserAgent を別のものに変更すると、UIWebView が更新されません。UserAgent を正常に更新するには、UIWebView を削除/解放し、再度割り当て/表示する必要がありますが、UIWebView のすべての履歴が失われます。有効にするために新しい UIWebView を作成せずに UserAgent を更新する方法はありますか?

4

1 に答える 1

1

NSUserDefaults を使用しているので、それらを設定していると思います

application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

私が以前に使用した代替手段は

NSMutableURLRequest*request=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:yourURL]];
[request setValue:userAgent forHTTPHeaderField:@"User-Agent"];
[webView loadRequest:request];

UIWebView Delegate を使用して、NSString 変数を使用して、最後にロードされた webview の状態をキャプチャすることもできます。

-(void)webViewDidFinishLoad:(UIWebView *)webView{
    currentConfig=[webView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML];
}

そして、使用してwebViewをリロードします

[webView loadHTMLString:currentConfig baseURL:yourURL];
于 2014-01-21T16:38:33.093 に答える