Ottenere la webapp per Twitter mobile di iPhone all'interno di UIWebView

Ok, ecco lo scenario: sto costruendo un'app per iPad che mostrerà un UIWebView, width = 320 pixel (o punti ora). Si snoderà di un "widget" all'interno dell'app.

Ho dovuto modificare l'user-agent della webview per farlo visualizzare la mobileversion, invece della versione desktop, facendo ciò su self.viewDidLoad.

NSDictionary *dictionnary = [[NSDictionary alloc] initWithObjectsAndKeys:@"Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3", @"UserAgent", nil]; [[NSUserDefaults standardUserDefaults] registerDefaults:dictionnary]; 

Sto anche impostando il frame della webview con una width di 320 pixel e le impostazioni scalePageToFit su YES.

Ok, ma ecco il problema: la webview mostra la versione mobile, ma la versione mobile TABLET, quella che probabilmente comparirà sui tablet Honeycombs. È un po 'una gigantesca app web per iPhone, con qualcosa come 600 pixel di width. Il frame di UIwebView è largo 320 px, ma il suo contenuto è molto più ampio.

Non capisco cosa potrebbe esserci, dato che l'user-agent è impostato per essere Mobile Safari su iPhone. Qualche idea su come rendere questa UIWebView larga 320px mostra esattamente la stessa versione che si ottiene quando si digita mobile.twitter.com su Mobile Safari di iPhone?

EDIT: Ok, i problemi sembrano essere legati al fatto che twitter webapp usa la "width del dispositivo" per determinare quale webapp mostrare all'utente.

Ho trovato questa soluzione: visualizzare la pagina mobile Wiki in UIWebView all'interno di UIPopoverController

È un po 'di lavori:

  -(void)webViewDidFinishLoad:(UIWebView *)webView{ if (hasLoaded == NO){ NSString *webHTML = [NSString stringWithContentsOfURL:self.webView.request.URL encoding:NSUTF8StringEncoding error:NULL]; NSRange range = [webHTML rangeOfString:@"device-width"]; if ((range.location!=NSNotFound)&&(range.length != 0)) { webHTML = [webHTML stringByReplacingOccurrencesOfString:@"device-width" withString:@"320" options:0 range:range]; [self.webView loadHTMLString:webHTML baseURL:[NSURL URLWithString:@"http://mobile.twitter.com"]]; hasLoaded = YES; } } 

Cambia il dispositivo, con il codice a 320, è perfetto, MA … quando la webview si ricarica (con il nuovo codice) ottengo l'app web vecchia (molto vecchia) di Twitter, invece di quella attuale. Qualche idea su come risolverlo?

Solutions Collecting From Web of "Ottenere la webapp per Twitter mobile di iPhone all'interno di UIWebView"