網頁

2012年7月14日 星期六

iOS開發筆記 ﹣UIWebView load jQuery.js

之前有一篇iOS開發筆記 - 將jquery放入是單純將jquery.js放入app中,並在html中去載入,但有時頁面是動態產生的,無法在當下載入,而且載入後,要馬上再放入自己寫好的js檔來執行,WebView有提供一個WebDelegate,其中有一個function:webViewDidFinishLoad,可以在頁面載完後執行,就在這function中去讀入jquery.js的內容,function內容如下:


- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSString *filePath = 
      [[NSBundle mainBundle] pathForResource:@"jquery-1.7.2.min" 
            ofType:@"js" inDirectory:@""];
    NSData *fileData = [NSData dataWithContentsOfFile:filePath];
    NSString *jsString = 
      [[NSMutableString alloc] initWithData:fileData 
            encoding:NSUTF8StringEncoding];
    
    [webView stringByEvaluatingJavaScriptFromString:jsString];
}


再來再自己寫一個function跟一個UIButton綁定,function如下:

- (IBAction)runJavascript:(id)sender
{
    NSString *workjs = [[NSBundle mainBundle] pathForResource:@"work" ofType:@"js" inDirectory:@""];
    NSData *workjsData = [NSData dataWithContentsOfFile:workjs];
    NSString *js = [[NSMutableString alloc] initWithData:workjsData encoding:NSUTF8StringEncoding];
    
    [self stringByEvaluatingJavaScriptFromString:js];
}


work.js的內容只是很簡單的hello

alert('hello!!');


這樣按下按鈕就會秀出alert訊息了。

參考網頁
http://www.altinkonline.nl/tutorials/xcode/uiwebview/load-jquery-in-uiwebview/

沒有留言:

張貼留言