2

サーバーから読み込まれた HTML ページを表示するために UIWebView を使用するアプリがあります。これは、追加のデータをロードする Objective-C 部分を含めてうまく機能しますが、機能しないのは、WebView で実行されている JavaScript にデータを渡すことです。

私が試したことは次のとおりです。

NSString * sigstring = [NSString stringWithFormat:@"updatedSig('%@');", [thisSignature base64EncodedString]];
sigstring = [sigstring stringByReplacingOccurrencesOfString:@"\n" withString:@""];

NSLog(@"WV: %@",[[[(AppDelegate*)[[UIApplication sharedApplication] delegate] viewController] webView] stringByEvaluatingJavaScriptFromString:sigstring]);

updatedSig 関数は、渡されたものは何でもコンソールにエコーします。

ただし、この場合、コンソールにデータがあるはずなのに、コンソールには何も返されません。

他の問題をテストするために、私も試しました

NSString * sigstring = [NSString stringWithFormat:@"updatedSig('%@');", @"AbsolutelyAnything"];
sigstring = [sigstring stringByReplacingOccurrencesOfString:@"\n" withString:@""];

NSLog(@"WV: %@",[[[(AppDelegate*)[[UIApplication sharedApplication] delegate] viewController] webView] stringByEvaluatingJavaScriptFromString:sigstring]);

これは完全に機能し、コンソールに「AbsolutelyAnything」と表示されます。

どんな助けでも大歓迎です。

4

1 に答える 1

0

Is your updated signature greater than 10MB or take more than 10 seconds to execute? The documentation mentions those limitations.

Also keep in mind that the result of stringByEvaluatingJavaScriptFromString is the executed Javascript, so if something goes wrong while executing you will likely just receive nil. Is the NSLog executing at all in the first example?

制限に従っていると仮定すると、Javascript にアラートを挿入して、期待どおりに実行されるようにすることをお勧めします。

于 2013-08-28T01:06:39.790 に答える