0

UIWebView で Javascript によって投稿された通知をリッスンすることは可能ですか? または類似?JS 変数を監視する Objective-C の関数を繰り返すことを考えましたが、もっと良い方法はありますか?

特定の画像が UIWebView にロードされたとき (jQuery の .load メソッドで実行できます) をリッスンしたいのですが、画像がロードされたときにネイティブの UIActivityIndi​​cator を非表示にしたいと考えています。Web ビューで gif を使用したくない!

すなわち

$('img.someImage').load(function(){
//fire something for obj-c to listen to!
});
4

1 に答える 1

2

HTML ページから iPhone アプリにイベントを渡す唯一の方法は、URL を使用することです。

特別なイベントを渡したい場合は、js でナビゲーションを新しい URL に変更します。たとえば、次のようにします。"MyCustomURl://DoSomeThing"

iPhone アプリケーションで、デリゲートを次のように設定しwebViewます。self

そして、次の関数を追加します

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSString *absolute = [request.URL absoluteString];

    if ([absolute isEqualToString:@"MyCustomURl://DoSomeThing"]) {
        //Do what you want here
        return NO;//this will not load the url
    }

    return YES;
}
于 2012-06-30T12:19:24.397 に答える