UIWebView内の処理を自分でコントロールする
UIWebViewでJQTouchを使っていて、クリックされた内容をフックするには、何かいい方法はないのでしょうか?それともフックしたらrejectされるとかってありますか? [@kaki_gnu]
2010-10-05 14:46:03ああ、そういえば自分もUIWebViewでjavascriptの処理をフックできるかどうか知らなかった。どうだろ。
2010-10-05 14:57:21@hkato193 どういう用途ですか?フックについては出来るかどうか知らないですけど最悪、別のページに飛ばす様にしてページ読み込み完了のイベントで処理なら可能ですよ
2010-10-05 15:06:23@hkato193 既存のJavaScriptの書かれ方次第ですけど同じ関数名でなどで上書きすればフック出来るかも?
2010-10-05 15:08:40@nakamura001 @salexkidd 何かの処理に対して、リンクをクリックしたときのデリゲートが呼ばれるがごとくフックできないかなと思いまして。同じ関数名、というのはHTMLで同じ関数名ということですか?
2010-10-05 15:14:20@hkato193 自分は昨日ちょっとしたテストにUIWebViewを利用していて、「こっちからJSとかにデータ与えられるのかな?」と簡単な好奇心Onlyで昨日ふっと思った感じですな。
2010-10-05 15:21:12@hkato193 @salexkidd でもリンクをクリックしたときの動作をフックするだけなら UIWebViewNavigationTypeLinkClicked のときに処理させればOKです。return NO; にしたら既存の処理は行われません
2010-10-05 15:21:27@nakamura001 @salexkidd ありがとうございます!ということは、読み込んだHTMLの中のjavascript部分を差し替えてloadHTMLstring:、という流れになりますかね。素っ頓狂だったら恐縮ですが・・・
2010-10-05 15:25:35@hkato193 @salexkidd そうなります。ちょっとそちらのパターンで試した事が無いので多分というレベルですが。後で送ったリンククリックイベントでフックのパターンであれば自分で使った事が有るので確実に実現可能です。
2010-10-05 15:28:57@hkato193 stringByEvaluating~ でJavaScriptとかDOMを書き換えるのがいいと思います。
2010-10-05 15:34:39@gnue @nakamura001 @salexkidd @k_katsumi ううっありがとうございます。Cocoa勉強会だとどんな方法だったのですか?
2010-10-05 15:36:39@hkato193 @k_katsumi @nakamura001 @salexkidd Outside→Inside(Create:loadHTMLなど、Read/Update/Dalete:stringByEvaluatingJavaScriptFromString:)
2010-10-05 15:40:45@hkato193 @k_katsumi @nakamura001 @salexkidd Inside→Outside(Create/Read/Update/Dalete:UIWebViewDelegate)と書いてある
2010-10-05 15:41:42