【iOS开发】利用WebView实现一个简易浏览器

预备知识


  1. 掌握swift基本语法和常用控件的使用
  2. 掌握AutoLayout的基本使用方法

实现步骤


1. 新建工程

打开Xcode -> 点击Create a new Xcode project -> 选择Single View Application -> 输入工程名,语言选择Swift,选择存储路径 -> 回车即可

2. Main.storyboard的构建

2.1 添加控件

需要添加的控件一共有三个

  • UITextField
  • Web View
  • Activity Indicator View

具体操作是从Xcode界面右下角的控件栏里直接拖到视图里(简单粗暴),然后添加布局约束,这个就不多说了,不懂的请自行百度。

2.2 设置控件的属性

直接上图


【iOS开发】利用WebView实现一个简易浏览器_第1张图片
TextField 属性

TextField主要修改的属性

  • PlaceHolder (占位符)
  • Clear Button 设置为 Appears while editing
  • Keyboard Type 设置为 URL
  • Return Key 设置为 Go

Activity Indicator View 修改的属性

  • Hides When Stopped 设置为 true
    在属性栏那里提上钩即可,若没有设置它会一直显示在屏幕中


    【iOS开发】利用WebView实现一个简易浏览器_第2张图片
    Activity Indicator View 属性

3. 将控件链接到ViewController.swift

点击右上角,选择辅助编辑器视图


编辑器视图

选中控件,按住control键,拖动鼠标到代码窗口,将控件输出口链接到代码中

【iOS开发】利用WebView实现一个简易浏览器_第3张图片
链接到代码

同样方法将其余控件链接到代码,最终 ViewController.swift 会多出以下三行代码

demo

4. 添加代码

需要实现 UIWebViewDelegate 和 UITextFieldDelegate 两个协议

import UIKit

class ViewController: UIViewController, UIWebViewDelegate, UITextFieldDelegate

添加一个加载请求的方法

//加载请求的方法
func loadUrl(url: String, web: UIWebView) {
    
    //载入输入的请求
    let aUrl = NSURL(string: ("https://" + url)
    let urlRequest = NSURLRequest(URL: aUrl!)
    web.loadRequest(urlRequest)
    
}

实现UITextFieldDelegate协议
textFieldShouldReturn 方法是在 Return 键点击后调用

 func textFieldShouldReturn(textField: UITextField) -> Bool {

        loadUrl(textField.text!, web: webView1)
        //解除textField的第一响应者的注册资格,键盘消失;若没有这一步,键盘会一直留在屏幕内
        textField.resignFirstResponder()
      return true
}

实现UIWebViewDelegate协议

func webViewDidStartLoad(webView: UIWebView) {
    //轮圈开始转动
    loading.startAnimating()
    //状态栏的网络请求轮圈开始转动
    UIApplication.sharedApplication().networkActivityIndicatorVisible = true
}

//网页加载结束
func webViewDidFinishLoad(webView: UIWebView) {        
    loading.stopAnimating()
    UIApplication.sharedApplication().networkActivityIndicatorVisible = false 
}
最关键的一步到了

在ViewDidLoad( )方法里添加以下代码

    //添加代理委托
    textField.delegate = self
    webView1.delegate = self

别看只有小小两行,如果没有添加代理委托,点击Return键会出现键盘无法消失等问题
添加代理委托的方法还可以把 outlet 下的 + 拉到file's owner(一个透视的正方体)上即可

5. 配置 Info.plist

原因是IOS 9后,苹果为了增加安全性,强制所有的APP使用安全的HTTPS链接,而且是默认使用的,好在苹果还提供了一个变通的解决方案,允许明文HTTP通信。
需要在Info.plist文件里增加一项
App Transport Security Settings, 再点旁边的 + ,出现 Allow Arbitrary Loads, 值改为YES 。

6. 最终效果

【iOS开发】利用WebView实现一个简易浏览器_第4张图片
WebBrowser.gif


总结

本人为iOS开发新手一枚,写的不好的或写错的地方,希望各位大侠能帮忙指正。
各位大侠,如果觉得对自己有点用的,欢迎点个赞,也欢迎大家关注@陈炯
谢谢观看此文。

你可能感兴趣的:(【iOS开发】利用WebView实现一个简易浏览器)