Domanda

C'è un modo per falsificare l'user agent in Safari su iPhone?

Così, per esempio, si potrebbe creare un'applicazione su iPhone che ha il browser Safari integrato, tuttavia qualsiasi sito web l'utente visita con questo browser non saprei che eri in Safari su iPhone, si potrebbe pensare siete su qualcosa come Safari su un PC, o anche IE / Firefox.

Grazie

È stato utile?

Soluzione

Sì Penso che si potrebbe cambiare questo. Ci vorrebbe un po 'di lavoro in giro per farlo funzionare.

  1. Si avrebbe bisogno di gestire manualmente tutte le richieste. Rendendo i propri richieste di dati. In questa richiesta di dati è possibile aggiungere un HTTPheader per User-Agent che ignorare le intestazioni di default.

    * 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];
    
  2. Se si incorpora il browser Web Safari nella vostra applicazione è possibile iscriversi ai suoi metodi delegato. Uno di loro notificherà l'applicazione che Safari vorrebbero caricare un URL, questo è dove si cattura questo carico e ottenere i dati vostra auto.

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
    

    Ora si mette il codice qui a fare il carico di dati.

  3. Una volta che i dati sono caricati. Dategli la stringa dati al WebView. Ho impostato "baseURL: nil", ma potrebbe essere necessario impostare correttamente questo forse il dominio corretto per questa applicazione.

    [WebView loadHTMLString: newString baseURL: nil]

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top