Swift UIWebView的使用

来源:互联网 发布:淘宝千里眼好用不 编辑:程序博客网 时间:2024/06/15 05:54

swift结合webView定制浏览器


  • webview的介绍
  • webview的基本使用步骤
  • 简单的浏览器效果实现

·WebView的介绍

在IOS9中,涉及到对网页的操作,基本上都可以使用UIWebView的进行实现。你可以使用UIWebView Class将网页内容嵌入到你的APP内。UIWebView不仅支持外链内容的获取,而且可以加载本地HTML代码进行展示,对于IOS8以前(包括IOS8)需要使用WKWebView代替


·UIWebView的基本使用方法

·第一步:定义网址(即将要加载的网址URL),这里需要使用到NSURL对象,其语法形式如下:

    convenience init?(String URLString:String)

·第二步:生成请求对象(NSURLRequest),其语法形式如下:

    convenience init(URL URL:NEURL)

·第三步:加载网页内容,使用UIWebView的实例方法:

    func loadRequest(_ request NSURLRequest)

这三步的代码实例如下:

    let target = NSURL(string:"http://www.baidu.com")//步骤一1    let request = NSURLRequest(URL:target!)//步骤一1    webView.loadRequest(request)//加载网页内容

·浏览器效果的实现(实现工具:XCode 7.2.1)

  • 新建一个项目,命名为CustomerBrowser
  • 设置使其允许加载网络资源
    打开info.plist文件,添加字典App Transport Security Settings,并在其下增加一个Bool类型的键Allow Arbitrary Loads,其值设置为YES
  • 界面设置
    增加两个按钮,执行前进和后退操作,一个UITextField现实当前URl链接内容,一个GO按钮    以上的当做导航栏,WebView增加至,导航栏之下,并将其goBack和goForward方法绑定给两个按钮,代理方法绑定到dock中的ViewController。最后增加一个ActivityIndicatorView并设置其style为large white,Color设置为灰色,如此界面设计完成
  • 代码部分
class ViewController: UIViewController,UIWebViewDelegate {    @IBOutlet weak var textField: UITextField!    @IBOutlet weak var webView: UIWebView!    @IBOutlet weak var myActivityIndicatorView: UIActivityIndicatorView!    override func viewDidLoad() {        super.viewDidLoad()        // Do any additional setup after loading the view, typically from a nib.        myActivityIndicatorView.hidesWhenStopped = true        self.webView.delegate = self    }    override func didReceiveMemoryWarning() {        super.didReceiveMemoryWarning()        // Dispose of any resources that can be recreated.    }    //加载网页内容    func loadWebContentWithString(url:String){        let url = NSURL(string: url)        self.webView.loadRequest(NSURLRequest(URL: url!))    }    //--    @IBAction func showWeb(sender: UIButton) {        self.textField.resignFirstResponder()        self.loadWebContentWithString(self.textField.text!)    }}extension ViewController{    @available(iOS 2.0, *)    func webViewDidStartLoad(webView: UIWebView){        myActivityIndicatorView.startAnimating()    }    @available(iOS 2.0, *)    func webViewDidFinishLoad(webView: UIWebView){        myActivityIndicatorView.stopAnimating()        self.textField.text = webView.request?.URL?.absoluteString    }}
  • 效果图如下

这里写图片描述

0 0
原创粉丝点击