変数を渡すために、UIWebView
' メソッドを使用していますstringByEvaluatingJavaScriptFromString:
どうすればオブジェクトを渡すことができますか?
変数を渡すために、UIWebView
' メソッドを使用していますstringByEvaluatingJavaScriptFromString:
どうすればオブジェクトを渡すことができますか?
Obj-C から JS にオブジェクトを渡すには、オブジェクトをシリアライズおよびデシリアライズするしかありません。最も適したデータ形式は当然 JSON です。このチュートリアルが役に立ちます: http://www.raywenderlich.com/5492/working-with-json-in-ios-5
あなたの質問から、あなたは JavaScript だけでなく、UIWebView 内の JavaScript コンテキストと話したいと考えています。残念ながら、Mac 上の Cocoa でアクセスできるように、UIWebView の JSContext オブジェクトに直接アクセスすることはできません。ただし、UIWebView を使用せずに Obj-C から JavaScript にブリッジしたいだけの場合は、独自のバージョンの JavaScriptCore をアプリと共に出荷することで実現できます。そうすれば、Obj-C と JS オブジェクトを 2 つの世界の間で行き来させることができます。これは、これを実証するデモ プロジェクトです: https://github.com/jfahrenkrug/AddressBookSpy/blob/master/AddressBookSpy/AddressBookSpy/ABSEngine.m
phoboslab のリポジトリをフォークし、WebKit から最新バージョンに更新しました (先週の金曜日の時点で)。これは iOS 5 および 6 と互換性があり、iOS 7 で機能する Objective-C から Javascript へのブリッジが含まれています (プライベート フレームワークや機能は使用されていません)。
リポジトリは GitHub にあります: https://github.com/darionco/JavaScriptCore-iOS
また、便宜上、ライブラリ (.a) と必要なヘッダー ファイルを含む ZIP ファイルをリポジトリに追加しました。
ブリッジを使用してオブジェクトを渡す方法に関するチュートリアルをここで見つけることができます: http://www.steamclock.com/blog/2013/05/apple-objective-c-javascript-bridge/
乾杯!