HTML5学习总结-11 IOS 控件WebView显示网页

Posted 王信平

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于HTML5学习总结-11 IOS 控件WebView显示网页的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用 iOS HTML5 视频控件? [关闭]

iOS:HTML5 视频,在全屏状态下连续播放

Html阶段学习总结

iOS学习—— UISearchBar的使用

android WebView总结

使用 JavaScript 包装 HTML5 视频元素会破坏 iOS 中的视频播放器