stringbyevaluatingjavascriptfromstringの奇妙な問題nsuserdefaultの値で動作していない…助けてください!

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

質問

私が持っている本Reader iOSアプリのブックマーク機能に取り組んでいます。現在のセットアップの方法では、ユーザーはビューをスクロールし、出発する前に保存またはブックマークしたいときに、ボトムツールバーのセーブボタンを押します。

彼らがこの保存ボタンを押すと、保存されたアクションが呼び出されます。

-(IBAction) savePlace:(id)sender{

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

}

驚くべきことに、私はこの部分を機能させました。セーブボタンを押すことができます。コンソールは、画面上にいる場所について200個を読み取ります。その後、私が出て戻ってくると、この方法がnsuserdefaultsによって呼ばれるこの方法のおかげで再びコンソールに印刷されます。アプリのロード:

- (void) setCurrentSpot:(NSUInteger)ySpot {

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

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

しかし!何も起こりません...私は正しいY軸値を保存し、正しく取得しているという事実を知っていますが、そのJavaScriptメソッドが呼び出された場合、発火しません。

物事をさらに複雑にするために、私は先に進み、それにアクセスするカスタムibactionを作成しました 同じ YSPOT値は、まったく同じJavaScriptメソッドを使用してビューを位置200に移動し、完全に機能しました!

何が足りないの?何が起こっているのかわかりません。ありがとう

役に立ちましたか?

解決

編集:あなたの質問を誤解し、

おそらく、JavaScriptと呼んで呼んでいる方法は、速すぎると呼ばれていますか?そして、UIWebviewを初期化して反応する時間を与えていませんか? WebViewで登場するのを待つときに機能する場合は、それを呼び出してください。それが私が見ることができる唯一のことです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top