2012-04-05 12 views
1

私はいくつかのjavascript関数でUIWebViewを持っているとしましょう。私はそれらのjavascript関数は、私のアプリから情報を要求することができ、私のアプリはそれを返す必要があります。 URL Schemesを使用してリクエストを取得することはできますが、情報をjavascript関数に戻す方法はわかりません。Objective-Cのjavascript関数に情報を返すにはどうすればよいですか?

javascript変数をUIWebViewに挿入してから、パラメータとして変数を使用してjavascript関数を再度呼び出すのが最適な方法ですか?または、私はUIWebViewに使用できるメソッドがありますか?

答えて

0
NativeBridge.call("objCMethod", ["firstArgument"], function (returnValue) { 
    if (returnValue) { 
     // whatever 
    } else { 
     // whatever 
    } 
}); 

使用非同期通信。 Objective CルーチンがJavascriptにコールバックするためのJavascript関数を用意して、必要な応答パラメーターを指定します。 Javascriptコールバック関数は、URLスキームを介してObjective Cコードに送信されるパラメータの1つでもありえます。

2

stringByEvaluatingJavaScriptFromString経由でJavascriptを注入するのは問題ありません。

他の方向が良い(込み。JSへのコールバック)webView:shouldStartLoadWithRequest:navigationType:

How to Properly Call ObjectiveC From Javascriptを介して処理されるが、詳細にそれを説明し、ソースが含まれています。 Objective-CのreturnValueを利用する

サンプルJSコード:

+0

私は既にこの部分を動作させています。私の質問は、javascript関数に情報を返す方法でした。申し訳ありませんが私は十分に明確でない場合。 –

+0

コードのObjective C側で、投稿したスクリプトにどのように値を返すのですか?私はちょうど正規のリターンキーを使用できますか?次に例を示します。 ' - (BOOL)objCMethod:(NSString *)myString {// Do stuff ... return YES; } '。その後、javascriptで、 'returnValue'は値" YES "を持っていますか? –

+0

' - (BOOL)objCMethod:(NSString *)myString'のようなメソッドがあります。実際にはより多くのコードが含まれています。そのサンプルプロジェクト(http://blog.techno-barje.fr/public/iphone-sdk/NativeBridge/NativeBridge-non-buggy.zip)で、 'webView shouldStartLoadWithRequest'、' handleCall'と 'returnResult'を見てください。 –

関連する問題