problema sconosciuto con stringByEvaluatingJavaScriptFromString che non funziona con il valore NSUSerDefault ... aiuto per favore!

StackOverflow https://stackoverflow.com/questions/4197150

Domanda

Sto lavorando su una caratteristica bookmarking per un libro iOS applicazione Lettore ho. Il modo in cui è configurato ora, l'utente scorre la vista, e quando vogliono salvare, o bookmark loro posto prima di lasciare, hanno colpito un pulsante Salva sulla barra degli strumenti in basso.

Quando hanno colpito questo pulsante Salva, viene chiamato l'azione salvata:

-(IBAction) savePlace:(id)sender{

     int pageYOffset = [[webView stringByEvaluatingJavaScriptFromString:@"window.pageYOffset"] intValue];
     NSLog(@"%d Set Y Value", pageYOffset);
     [[NSUserDefaults standardUserDefaults] setSavedSpot:pageYOffset];

}

Sorprendentemente, ho ottenuto questo lavoro parte. Posso colpire il pulsante Salva, la console leggerà dire 200 per dove sono a sullo schermo, e poi quando esco e torno, 200 è ancora una volta stampato fuori per le console grazie a questo metodo che viene chiamato da quando NSUserDefaults i carichi app:

- (void) setCurrentSpot:(NSUInteger)ySpot {

       NSLog(@"%d Saved Y Value", ySpot);

         [webView stringByEvaluatingJavaScriptFromString: [NSString stringWithFormat: @"window.scrollTo(0, %d);", ySpot]];
}

MA! Non succede nulla ... So che per un fatto che io sono il risparmio e il recupero correttamente il valore di Y corretto, ma quando quel metodo JavaScript viene chiamato, non sarà il fuoco.

Per ulteriori cose complicare, sono andato avanti e ha fatto un costume IBAction che accessi che stesso Valore ySpot, e usato esattamente lo stesso metodo JavaScript per spostare la visualizzazione sulla posizione 200, e funziona perfettamente!

Che cosa mi manca? Non vedo che cosa sta succedendo. Grazie

È stato utile?

Soluzione

modifica: frainteso la tua domanda,

Forse il metodo che si sta chiamando a chiamare quel javascript è chiamato troppo in fretta? e non dando il tempo UIWebView per inizializzare e reagire? se funziona quando si attende in WebView per venire upand poi chiamare, che è l'unica cosa ho potuto vedere.

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