quarta-feira, 14 de março de 2012

Dicas de Programação: Como executar um javascript no iOS?

Para executar um javascript no iOS, basta criar uma instância/objeto da classe UIWebView e chamar o método stringByEvaluatingJavaScriptFromString.
Vamos ao exemplo:

//Reescrevendo o método viewDidAppear da classe UIViewController (controle da tela)
- (void) viewDidAppear:(BOOL)animated
{
    //Chamando o método da classe herdada (pai)
    [super viewDidAppear: animated];
    //"Aloca memória" - Instância o objeto
    UIWebView* webView = [[UIWebView alloc] init];
    //Abre uma caixa de prompt (javascript)
    NSString* address = [webView stringByEvaluatingJavaScriptFromString: @"prompt('Entre com um IP:')"];
    //Loga o valor da variável address
    NSLog(@"%@", address);
    //"Desaloca memória"
    [webView release];
}

Simples não? O mais legal é que dá para carregar uma página e percorrer ela pelas funções DOM:

...
@synthesize  webView;
...
- (void) viewDidLoad
{
     //Chamando o método da classe herdada (pai)
     [super viewDidLoad];
     //Instância para o objeto webView
     webView = [[UIWebView alloc] init];
     //Objeto instanciado url
     NSURL* url = [NSURL URLWithString: @"http://blogdotakemura.blogspot.com"];
     //Objeto instanciado request
     NSURLRequest* request = [NSURLRequest requestWithURL: url];
     //Setando o objeto que implementa o protocolo UIWebViewDelegate
    self.webView.delegate = self;
    //Carregando a página da URL
    [self.webView loadRequest: request];
}
...
//Método implementado do protocolo UIWebViewDelegate
- (void) webViewDidFinishLoad: (UIWebView*) wv
{
    NSString* titulo  = [self.webView stringByEvaluatingJavaScriptFromString: @"document.getElementsByTagName('h1')[0].innerHTML"];
    NSLog(@"%@", titulo);
}
...
- (void)viewDidUnload
{
       [super viewDidUnload];
       self.webView = nil;
}
...

Até mais!

Nenhum comentário: