一 加載外部網頁
1、使用UIWebView加載網頁
運行XCode 新建一個Single View Application 。
2 添加安全消息
添加以下消息到項目的 Info.plist
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key><true/> </dict>
2、加載WebView
在ViewController.m添加WebView成員變量和添加實現
#import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIWebView *webView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSURL * url = [ NSURL URLWithString:@"http://www.baidu.com" ] ; NSURLRequest *request = [NSURLRequest requestWithURL:url ]; [self.webView loadRequest:request]; } @end
二 加載內部資源
1 新建一個IOS的應用。加載一個web資源到本地應用。
2 加載的網絡頁面
index.html
<html> <head> <meta charset="UTF-8"> </head> <body> <p id="word">12122121212112</p> <ul> <li class="change">你好</li> <li>test1</li> <li>test2</li> <li>test3</li> <li>test4</li> <li>test5</li> </ul> </body> </html>
3 在ViewController.m添加請求本地資源的代碼
#import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIWebView *webView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSURL *url = [[NSBundle mainBundle] URLForResource:@"index" withExtension:@"html"]; NSURLRequest *request = [NSURLRequest requestWithURL:url ]; [self.webView loadRequest:request]; } @end
4 設置代理
選中工程里的 Main.storyboard在找到Web View 視圖,按住 commond鍵,指向ViewController在彈出的菜單里選中'delegate',勾選中后,在控制器中點擊鼠標右鍵查看 WebView的delegate設置成功。
5 讓 ViewController.m實現 UIWebViewDelegate 代理,重寫webViewDidFinishLoad方法
#import "ViewController.h"
@interface ViewController ()<UIWebViewDelegate>
@property (weak, nonatomic) IBOutlet UIWebView *webView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//NSURL * url = [ NSURL URLWithString:@"http://www.baidu.com" ] ;
NSURL *url = [[NSBundle mainBundle] URLForResource:@"index" withExtension:@"html"];
NSURLRequest *request = [NSURLRequest requestWithURL:url ];
[self.webView loadRequest:request];
}
- (void) webViewDidFinishLoad:(UIWebView *)webView{
// 刪除
NSString *str = @"var p = document.getElementsByTagName('p')[0];";
NSString *str1 = @"p.remove();";
[webView stringByEvaluatingJavaScriptFromString:str];
[webView stringByEvaluatingJavaScriptFromString:str1];
// 添加
NSString *str2 = @"var p = document.createElement('p');"
"p.innerHTML = 'It is a good day';"
"p.style.background = 'red';"
"document.body.appendChild(p);";
[webView stringByEvaluatingJavaScriptFromString:str2];
// 修改
NSString *str3 = @"var li = document.getElementsByTagName('li')[0]; li.innerHTML='test6';";
[webView stringByEvaluatingJavaScriptFromString:str3];
NSString * str4 = @"var img = document.createElement('img');"
"img.src='img_01.jpg';"
"document.body.appendChild(img);";
[webView stringByEvaluatingJavaScriptFromString:str4];
}
@end
最終效果如下圖所示:
練習訪問 http://wap.baidu.com頁面,修改頁面的內容:
關鍵代碼:
- (void)viewDidLoad { [super viewDidLoad]; NSURL * url = [ NSURL URLWithString:@"http://www.baidu.com" ] ; NSURLRequest *request = [NSURLRequest requestWithURL:url ]; [self.webView loadRequest:request]; } - (void) webViewDidFinishLoad:(UIWebView *)webView{ NSString *str = @"var ele = document.getElementsByClassName('text-content')[0];" "ele.innerText = '12345678';"; [webView stringByEvaluatingJavaScriptFromString:str]; }
知識點:
1. 在mac app中,點擊 input標簽時,如果不能彈出鍵盤需要按住以下快捷鍵。
commond + shift + K
2. 蘋果鍵盤與Windows鍵盤完整對應
Windows Ctrl --- Mac Control
Windows Win --- Mac Option
Windows Alt --- Mac Commond