之前有一篇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/
沒有留言:
張貼留言