Swift中WebView的应用

WebView控件是做网络应用开发中使用最多的控件,直接在WebView内部指定一个网页地址就可以访问网页了,同时也可以实现UIWebViewDelegate协议实现相应的方法去控制内容的加载和处理。著名的PhoneGap开发的应用,其外壳重要的组件也是WebView控件。

在viewDidLoad方法内添加以下代码就可以完成简单的网页

var webView = UIWebView(frame: CGRectMake(0, 0, 600, 600))

var url = NSURL(string: "http://www.imoneyfans.com")

webView.loadRequest(NSURLRequest(URL: url!))

self.view.addSubview(webView)

就像上面加载网页时用到的loadRequest方法用于加载指定url对象所设定的网页内容。方法loadHTMLString则用于加载指定的HTML代码片断。

var html = "<section><img src=\"http://img1.gtimg.com/12/1224/122455/12245555_980x1200_0.jpg\"</section>"

webView.loadHTMLString(html, baseURL: nil)

loadData也是用于加载指定内容,如将本地的一个html文件转成NSDATA对象后显示在WebView上

var file = NSBundle.mainBundle().pathForResource("test", ofType: "html")

var url = NSURL.fileURLWithPath(file!)

var data = NSData(contentsOfURL: url!)

webView.loadData(data, MIMEType: "text/html", textEncodingName: "utf-8", baseURL: nil)

对于检测网页的内容是否是可交互的类型,如果点击网页上一个Address可以调出Map,可以指定要探测的数据类型可选的值有链接(Link)、地址(Address)、电话号码(PhoneNumber)等,也可以指定为All探测所有的类型,在缺省状态下电话号码是可以点击的,以下是探测电话号码

webView.dataDetectorTypes = UIDataDetectorTypes.PhoneNumber

还有很多方法,如

webview.reload()

webview.stopLoading()

webview.goBack()

webview.goForward()

如果要实现更高级的功能就要实现UIWebViewDeleage这个协议。

时间: 2024-11-05 18:51:42

Swift中WebView的应用的相关文章

swift禁用webView对H5中数字,链接,日期,地址,电话号码做解析

showWebView.dataDetectorTypes = .None //swift禁用webView对H5中数字,链接,日期,地址,电话号码做解析 其UIDataDetectorTypes属性: static var PhoneNumber: UIDataDetectorTypes { get } // Phone number detection static var Link: UIDataDetectorTypes { get } // URL detection static v

Swift 中的Range和NSRange不同

Swift中的Ranges和Objective-C中的NSRange有很大的不同,我发现在处理Swift中Ranges相关的问题的时候,总是要花费比我想象的更多的时间.不过,现在回过头来看看,发现Swift中的Ranges的使用还是比较合理的,但是想要正确的使用Ranges真的需要一些特别的技巧. 看一个例子,下面这段代码展示的是截取以指定的字符开头和以指定的字符结尾的子字符串: ? 1 2 3 4 5 6 var str = "Hello, playground"   let ran

Swift 中的基础语法(二)

1.Swift 中的函数 /// 函数的定义 /// /// - Parameters: /// - x: 形参 /// - y: 形参 /// - Returns: 返回值 func sum(x: Int, y: Int) -> Int { return x + y } print(sum(x: 10, y: 20))   /* 外部参数就是在形参前面加了一个字 外部参数不会影响函数内部的细节 外部参数会让外部调用看起来更加直观 外部参数如果使用了'_',在外部调用函数时,会忽略形参的名字 &qu

Swift中的错误处理

前言 任何代码都会发生错误,这些错误有些是可以补救的,有些则只能让程序崩溃.良好的错误处理能够让你的代码健壮性提高,提高程序的稳定性. 本文的Swift版本:Swift 3 Objective C 返回nil 如果出错了,就返回空是Objective C中的一种常见的处理方式.因为在Objective C中,向nil发送消息是安全的.比如: - (instancetype)init { self = [super init]; if (self) { } //如果初始化失败,会返回nil ret

swift中代理的使用

下面以自定义的UITableViewCell的代理为例,记录一下swift中代理的使用 controller中的代码如 1 // 2 // ViewController.swift 3 // simpleDemo 4 // 5 // Created by liubo on 16/7/25. 6 // Copyright © 2016年 liubo. All rights reserved. 7 // 8 9 import UIKit 10 11 class ViewController: UIV

SWIFT中的repeat...while

SWIFT中的repeat...while类似于JAVA\.NET中的 do while.大同小异只是把do换成了repeat var index = 10 repeat{ print(index) index-- } while(index>0)

Swift中的结构体,类,协议,扩展和闭包的用法以及? 和 !的区别

// MARK: - 1.结构体 //1.声明一个结构体 struct Rect {    // 声明结构体变量的属性(存储属性)    var x:Float    var y:Float    var width:Float    var height:Float    // 声明结构体属性,要使用static    static var description:String?        // 声明一个计算属性(是用来专门计算结构体变量属性的setter,和getter方法,其本身没有存

Swift中编写单例的正确方式

Swift中编写单例的正确方式 2015-12-07 10:23 编辑: yunpeng.hu 分类:Swift 来源:CocoaChina翻译活动 14 10647 Objective-CSwift单例 招聘信息: Cocos2d-x 工程师 cocos2dx手游客户端主程 wp开发 iOS开发工程师 iOS软件工程师 iOS研发工程师 iOS讲师 iOS开发工程师 iOS高级开发工程师 iOS 高级软件工程师 iOS高级开发工程师 本文由CocoaChina译者leon(社区ID)翻译自kr

[Swift中错误]missing argument label &#39;greeting:&#39; in call

Swift 中出现这个问题:从第二个参数起,自动加上lable func sayHello(name:String? ,greeting:String)->String { let result = greeting + "," + (name ?? "Guest") + "!" return result } var nickname:String? nickname = "yc" //“Goodmorning前面应该