Spoofing den User-Agent eines eingebetteten Browser Safari auf dem iPhone?
-
11-09-2019 - |
Frage
Gibt es eine Möglichkeit, die User-Agenten auf Safari auf dem iPhone zu fälschen?
So zum Beispiel, würden Sie eine Anwendung auf dem iPhone erstellen, die den eingebetteten Browser Safari hat jedoch jede Website der Benutzer besucht mit diesem Browser Sie auf Safari auf dem iPhone nicht wissen würde, würde es denken Sie an etwas, wie Safari auf einem PC oder sogar IE / FireFox.
Danke
Lösung
Ja, ich glaube, Sie dies ändern könnte. Es wäre ein bisschen eine Arbeit benötigen um, um es zu arbeiten.
-
Sie müssten manuell alle Anfragen verwalten. Durch Ihre eigenen Daten-Anfragen. In dieser Datenanforderung können Sie eine Httpheader für User-Agent hinzufügen, die die Standard-Header wird außer Kraft setzen.
NSMutableURLRequest * urlRequest = [[[NSMutableURLRequest alloc] initWithURL: requestURL] Autorelease];
[urlRequest setHTTPMethod: @"POST"]; [urlRequest setHTTPBody: [nvpString dataUsingEncoding:NSUTF8StringEncoding]]; [urlRequest addValue:@"Your+User+Agent+String" forHTTPHeaderField:@"User-Agent"]; receivedData = [[NSMutableData alloc] retain]; [receivedData setLength:0]; [NSURLConnection connectionWithRequest: urlRequest delegate: self];
-
Wenn Sie die Safari Web-Browser in Ihrer Anwendung einbetten können Sie auf seine Delegatmethoden abonnieren. Einer von ihnen benachrichtigt Ihre Anwendung, die Safari möchte eine URL laden, das ist, wo Sie diese Last zu fangen, und die Daten, um sich selbst bekommen.
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
Jetzt setzen Sie Ihren Code hier in die Datenlast zu tun.
-
Sobald die Daten geladen. Geben Sie ihm die Datenkette zurück zum webView. „: Null baseURL“ aber man könnte dies richtig eingestellt haben, um vielleicht die richtige Domain für diese App habe ich gesetzt.
[webView loadHTMLString: Neuerstring baseURL: nil]