(1)創建
UIWebView
*myWebView=[[
UIWebView
alloc] initWithFrame:CGRectMake(0, 20, 320, 300)];
(2)加載網頁
NSURL *url=[NSURLURLWithString:@"http://www.google.com.hk"];
NSURLRequest *request=[[NSURLRequestalloc] initWithURL:url];
[
myWebView
loadRequest:request];
(3)是否與用戶交互(即用戶能不能控制webview)
[
myWebView
setUserInteractionEnabled:YES];
(4)顯示 UIWebView
[
self
.
view
addSubview:myWebView];
(5)導航
[webView goBack];//返回
[webView goForward];//向前
[webView reload];//重新加載數據
(6)委托
1.-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType;
-
web視圖指示加載內容時通知。應該返回YES開始加載。導航提供的類型參數,是指請求的來源,可以是下列任何一個:
- 2.-(void)webViewDidStartLoad:(UIWebView *)webView;//當開始請求的時候被通知
- 3.-(void)webViewDidFinishLoad:(UIWebView *)webView;//當結束請求的時候被通知
- 4.-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;//當請求中出現錯誤時被通知
-
(7)UIWebView和JS交互
1》在Objective-C代碼中調用JS使用 stringByEvaluatingJavaScriptFromString 方法,需要等到UIWebView中的頁面加載完成之后去調用。
-(void) webViewDidFinishLoad:(UIWebView *)webView{
[self.activityViewstopAnimating];
[myWebView stringByEvaluatingJavaScriptFromString:@"function test(){ alert(123123123)}"];
[myWebView stringByEvaluatingJavaScriptFromString:@"test();"];//調用
}2》在JS中調用Objective-C代碼JS代碼:- function sendCommand(cmd,param){
- var url="testapp:"+cmd+":"+param;
- document.location = url;
- }
- function clickLink(){
- sendCommand("alert","你好嗎?");
- }
Objective-C代碼:- - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
- NSString *requestString = [[request URL] absoluteString];
- NSArray *components = [requestString componentsSeparatedByString:@":"];
- if ([components count] > 1 && [(NSString *)[components objectAtIndex:0] isEqualToString:@"testapp"]) {
- if([(NSString *)[components objectAtIndex:1] isEqualToString:@"alert"])
- {
- UIAlertView *alert = [[UIAlertView alloc]
- initWithTitle:@"Alert from Cocoa Touch" message:[components objectAtIndex:2]
- delegate:self cancelButtonTitle:nil
- otherButtonTitles:@"OK", nil];
- [alert show];
- }
- return NO;
- }
- return YES;
- }