2012-02-01 26 views
6

私は2つの変数を取る単純なjavascript関数を持っています。私はObjective-C(iOS)アプリケーションでこのjavascript関数に既にある2つの変数を渡す必要があります。 JavaScriptを実行するためのコードの私の行は次のとおりです。Objective-Cからjavascript関数に変数を渡しますか?

[webView stringByEvaluatingJavaScriptFromString:@"onScan()"]; 

javascript関数は、単にHTMLフォームに2つの変数を適用し、それを提出します。私は変数がないので、私のフォームでは未定義になってしまいます。 8-)私はこれに関する多くのドキュメントを見つけることができませんでしたが、おそらく私は間違った場所を探していますか?

FWIW、私のObjective-C変数は文字列です。私はjavascript関数に渡される変数のそれぞれの周りに単一引用符を配置することで、この作業を取得することができました

:私のjavascript関数はonscan(a,b)

UPDATEです。更新されたコードは次のとおりです。

NSString *stringOne = @"first_parameter"; 
NSString *stringTwo = @"second_parameter"; 

NSString *javascriptString = [NSString stringWithFormat:@"onScan('%@','%@')", stringOne, stringTwo]; 

[webView stringByEvaluatingJavaScriptFromString:javascriptString]; 

それはだ、NSString Appleのドキュメントをチェックアウト:

[webView stringByEvaluatingJavaScriptFromString:@"onScan('%@','%@')",a,b]; 

答えて

9

stringByEvaluatingJavaScriptFromString:はそうあなたがしなければならないすべてはstringWithFormat:を使用して文字列を結合して、以下のような%@オブジェクトフォーマッタがNSStringを取ります非常に便利なオブジェクト!

+0

ありがとう、私はすでにそれを試していたと私は私のUIWebViewに渡すことを得ることができませんでした。私はコードを戻して(上記のように)、NSLogに文字列を入れて正当なものであることを確認しましたが、何らかの理由でjavascript関数がこのメソッドを使って渡された変数を使用していません。奇妙なのは、文字列に変数を置かないと、フォームのテキスト値ボックスに未定義があるということです。 –

+1

私は、関数に渡す変数を単一引用符で囲むことでこれを解決できました。私は答えで私の質問を更新しました。 –

+0

これをキャッチしてくれてありがとう、私は私の答えも更新しました。私は何かを忘れていたというこの気持ちに悩まされ続けました... –

関連する問題