étrange problème avec stringByEvaluatingJavaScriptFromString ne fonctionne pas avec la valeur NSUSerDefault ... aide s'il vous plaît!

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

Question

Je travaille sur une fonctionnalité de partage de signets pour un lecteur de livre iOS app je. La façon dont il est maintenant configuré, l'utilisateur fait défiler à travers une vue, et quand ils veulent enregistrer ou mettre en signet leur place avant leur départ, ils ont frappé un bouton Enregistrer sur la barre d'outils en bas.

Quand ils ont frappé ce bouton Enregistrer, l'action enregistrée est appelée:

-(IBAction) savePlace:(id)sender{

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

}

De façon surprenante, j'ai ce travail partiel. Je peux frapper le bouton Enregistrer, la console va lire dire 200 pour où je suis sur l'écran, et puis quand je pars et je reviens, 200 est de nouveau imprimais à la console grâce à cette méthode qui est appelée par NSUserDefaults lorsque les charges d'application:

- (void) setCurrentSpot:(NSUInteger)ySpot {

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

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

MAIS! Rien ne se passe ... Je sais pertinemment que je sauvegarde et la récupération correctement la valeur correcte de l'axe Y, mais quand cette méthode JavaScript est appelé, il ne sera pas le feu.

Pour plus de choses de compliquer, je suis allé de l'avant et a fait une coutume IBAction que les accès que même valeur ySpot et utilisé exactement la même méthode JavaScript pour déplacer la vue à la position 200, et cela fonctionne parfaitement!

Qu'est-ce que je manque? Je ne vois pas ce qui se passe. Merci

Était-ce utile?

La solution

edit: mal interprété votre question,

Peut-être la méthode que vous appelez pour appeler javascript est appelé trop vite? et ne pas donner le temps de UIWebView pour initialiser et réagir? si cela fonctionne quand vous attendez le WebView à venir upand puis l'appeler, qui est la seule chose que je pouvais voir.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top