My requirement is not only to be able to change user-agent, but also to keep WebView the original user-agent information, that is, I need to append information on it. The answers are collected on StackOverflow and the final summary of the solutions is as follows:
At startup, for example, add the following code to the Appdelegate :
Get the original user-agent of WebView UIWebView *webview = [[UIWebView alloc] initwithframe:cgrectzero]; NSString *oldagent = [WebView stringbyevaluatingjavascriptfromstring:@ "navigator.useragent"]; NSLog (@ "Old agent:%@", oldagent); add my info to the new agent nsstring *newagent = [oldagent stringbyappendingstring:@ "jiecao/2.4.7 ch_appstore"];
nslog (@ "New agent:%@", newagent); Regist The new agent nsdictionary *dictionnary = [[Nsdictionary alloc] initwithobjectsandkeys:newagent, @ " UserAgent ", nil]; [[Nsuserdefaults Standarduserdefaults] registerdefaults:dictionnary];
In this way, WebView at the request of the user-agent is we set this, if you need to change the user-agent in webview use process, you need to modify the user-agent in this manner, and then re-instantiate a webview.
IOS UIWebView Modify User-agent