UIWebView2

下面是简单的例子:

加载动态URL地址

#pragma mark - 加载视图
- (void)viewDidLoad {
    [super viewDidLoad];
    self.webView = [[UIWebView alloc] initWithFrame:self.view.frame];
    NSString *str = @"http://www.baidu.com";
    NSURL *url = [NSURL URLWithString:str];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [self.webView loadRequest:request];
    [self.view addSubview:self.webView];
 }

出现问题:

...TTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.

百度搜答案:

解决方案:

http://jingyan.baidu.com/article/c85b7a646a79a8003aac955a.html?st=2&net_type=&bd_page_type=1&os=0&rst=&word=vpn配置是什么%E3%80%82

http://www.jianshu.com/p/257a28846956

下面的转载自上面的链接地址内容:

两种解决方案:

方式一: 使用文本编辑Info.plist, 在当中添加:

<!--回到过去不安全的HTTP网络请求,能任意进行HTTP请求 (不建议这样做, 原因见下文)-->
<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
  <true/>
</dict>
方式二: 在Info.plist中添加:

以上两种方式所实现的效果是一致的, 但是并不严谨, 建议有选择的允许HTTP请求(这个操作方法与上文"方式一"相同):

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSExceptionDomains</key>
  <dict>
    <key>域名.com</key>
    <dict>
      <!--允许子域名:subdomains-->
      <key>NSIncludesSubdomains</key>
      <true/>
      <!--允许App进行不安全的HTTP请求-->
      <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
      <true/>
      <!--在这里声明所支持的 TLS 最低版本-->
      <key>NSTemporaryExceptionMinimumTLSVersion</key>
      <string>TLSv1.1</string>
    </dict>
  </dict>
</dict>
当然, 以上方法都是建立在所访问的请求是HTTP类型的基础上, 一劳永逸的方法就是让服务端升级使用 TLS 1.2 SSL 加密请求的 HTTPS 协议.

服务器已支持TLS 1.2 SSL ,但iOS9上还是不行,还要进行链接里的适配操作。”那是因为:ATS只信任知名CA颁发的证书,小公司所使用的 self signed certificate,还是会被ATS拦截。对此,建议使用链接中给出的NSExceptionDomains,并将你们公司的域名挂在下面。



加载静态HTML页面

    self.webView = [[UIWebView alloc] initWithFrame:self.view.frame];
    NSString *str = @"Hellow <b> WebView</b>,<a href=http://www.baidu.com>More...</a>";
    [self.webView loadHTMLString:str baseURL:nil];
    [self.view addSubview:self.webView];


显示网页之前,显示一个旋转动画

#pragma mark - 加载视图
- (void)viewDidLoad {
    [super viewDidLoad];
    self.webView = [[UIWebView alloc] initWithFrame:self.view.frame];
    
    
    self.activityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
    self.activityIndicatorView.frame = CGRectMake(20, 20, 100, 100);
    self.activityIndicatorView.center = self.webView.center;
    
    //UIWebViewDelegate
    self.webView.delegate = self;
    
    //实例化NSURLRequest
    NSString *str = @"http://www.baidu.com";
    NSURL *url = [NSURL URLWithString:str];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    //加载页面
    [self.webView loadRequest:request];
    //添加UIActivityIndicatorView到WebView中
    [self.webView addSubview:self.activityIndicatorView];
    [self.view addSubview:self.webView];
 }
#pragma mark - 开始加载
- (void)webViewDidStartLoad:(UIWebView *)webView{
    [self.activityIndicatorView startAnimating];
    self.activityIndicatorView.hidden = NO;
}
#pragma mark - 结束加载
- (void)webViewDidFinishLoad:(UIWebView *)webView{
    [self.activityIndicatorView stopAnimating];
    self.activityIndicatorView.hidden = YES;
}

加载、刷新、后退、前进

#pragma mark - go
- (IBAction)go:(id)sender {
    NSString *urlString = self.urlStr.text;
    NSURL *url = [NSURL URLWithString:urlString];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [self.webview loadRequest:request];
    
}
#pragma mark - 前进
- (IBAction)forward:(id)sender {
    [self.webview goForward];
}
#pragma mark - 后退
- (IBAction)back:(id)sender {
    [self.webview goBack];
}
#pragma mark - 刷新
- (IBAction)refresh:(id)sender {
    [self.webview reload];
}

和JavaScript通讯

#pragma mark - 加载视图
- (void)viewDidLoad {
    [super viewDidLoad];
    NSMutableString *muStrings = [NSMutableString stringWithCapacity:20];
    [muStrings appendString:@"<html>"];
    [muStrings appendString:@"<head>"];
    [muStrings appendString:@"<script>"];
    [muStrings appendString:@"function showAlert() {alert('Hello');}"];
    [muStrings appendString:@"</script>"];
    [muStrings appendString:@"</head>"];
    [muStrings appendString:@"<body>"];
    [muStrings appendString:@"Test JS"];
    [muStrings appendString:@"</body>"];
    [muStrings appendString:@"</html>"];
    [self.webview loadHTMLString:muStrings baseURL:nil];
    
    
}

#pragma mark - 调用JS方法
- (IBAction)testJS:(id)sender {
    [self.webview stringByEvaluatingJavaScriptFromString:@"showAlert()"];
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值