stringbyevaluatingjavascriptfromstringの奇妙な問題nsuserdefaultの値で動作していない…助けてください!
-
11-10-2019 - |
質問
私が持っている本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で登場するのを待つときに機能する場合は、それを呼び出してください。それが私が見ることができる唯一のことです。
所属していません StackOverflow