HTML5學習總結-11 IOS 控件WebView顯示網頁


一 加載外部網頁

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM