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这个协议。

Swift中WebView的应用的更多相关文章

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

    showWebView.dataDetectorTypes = .None //swift禁用webView对H5中数字,链接,日期,地址,电话号码做解析 其UIDataDetectorTypes属性 ...

  2. swift 中关于open ,public ,fileprivate,private ,internal,修饰的说明

    关于 swift 中的open ,public ,fileprivate,private, internal的区别 以下按照修饰关键字的访问约束范围 从约束的限定范围大到小的排序进行说明 open,p ...

  3. 阿里巴巴最新开源项目 - [HandyJSON] 在Swift中优雅地处理JSON

    项目名称:HandyJSON 项目地址:https://github.com/alibaba/handyjson 背景 JSON是移动端开发常用的应用层数据交换协议.最常见的场景便是,客户端向服务端发 ...

  4. Android中webView和网页的交互

     Android中webView和网页的交互 Android中webView跟网页的交互式通过JavaScript进行的.具体步骤: 1.创建JavaScript,在点击的时候调用JavaScript ...

  5. Swift中的可选链与内存管理(干货系列)

    干货之前:补充一下可选链(optional chain) class A { var p: B? } class B { var p: C? } class C { func cm() -> S ...

  6. 在Swift中实现单例方法

    在写Swift的单例方法之前可以温习一下Objective-C中单例的写法: + (instancetype)sharedSingleton{ static id instance; static d ...

  7. [翻译]理解Swift中的Optional

    原文出处:Understanding Optionals in Swift 苹果新的Swift编程语言带来了一些新的技巧,能使软件开发比以往更方便.更安全.然而,一个很有力的特性Optional,在你 ...

  8. 窥探Swift之使用Web浏览器编译Swift代码以及Swift中的泛型

    有的小伙伴会问:博主,没有Mac怎么学Swift语言呢,我想学Swift,但前提得买个Mac.非也,非也.如果你想了解或者初步学习Swift语言的话,你可以登录这个网站:http://swiftstu ...

  9. swift 中指针的使用UnsafeMutablePointer

    在swift中已经弱化了指针的使用,可以这么使用 let s: NSRange = NSMakeRange(, ) let at = UnsafeMutablePointer<NSRange&g ...

随机推荐

  1. Centos下挖XMR门罗币的详细教程

    很多朋友都看过我之前写的Ubuntu下挖XMR门罗币的教程,也有很多朋友提出,为什么不写个Centos的教程出来,今天我在这里就写个Centos的教程,看这个教程前,大家先看看之前的教程,因为里面涉及 ...

  2. 尽量少用memcpy, 多用strcpy

    一般情况下,童鞋们都喜欢用memcpy函数去传递或者备份一个数据块.这样用起来是没有多大问题的,可是如果你要用其拷贝可见字符串的时候,就用问题了,你可能拷贝到的不是你希望的字符串,甚至是原来字符串的的 ...

  3. Perl 获得当前路径

      1.有两种方法:1. use Cwd;my $dir = getcwd;#$dir中即为当前目录的完整路径信息.2. my $dir = $ENV{'PWD'};#ENV是一个散列,用于存放环境变 ...

  4. Ubuntu 16.04 kinetic 编译指定包

    编译指定包 catkin_make -DCATKIN_WHITELIST_PACKAGES=baoming 使用上述命令后catkin_make会一直编译上面那个包,想要编译全部包,使用 catkin ...

  5. DEV-C++设置C++11标准

    DEV-C++默认的标准是C++98,改成C++11的方法如下: Tools -> Compiler Options -> Setting -> Code Generation -& ...

  6. Codeforces C - String Reconstruction

    C - String Reconstruction 方法一:把确定的点的父亲节点设为下一个点,这样访问过的点的根节点都是没访问过的点. 代码: #include<bits/stdc++.h> ...

  7. 模块commonjs AMD UMD

    commonjs是用在服务器端的,同步的,如nodejs amd, cmd是用在浏览器端的,异步的,如requirejs和seajs 其中,amd先提出,cmd是根据commonjs和amd基础上提出 ...

  8. Java读写记事本文件

    Java中我们也会考虑读写记事本,文件读取如下: public static void main(String[] args) { try { String path="d:\\abc.tx ...

  9. Confluence 6 管理多目录概述

    这里是有关目录顺序如何影响处理流程: 目录中的顺序是被用来如何查找用户和组的顺序. 修改用户和用户组将会仅仅应用到应用程序具有修改权限的第一个目录中. 配置目录载入顺序 你可以修改在 Confluen ...

  10. Confluence 6 结构(Schema )设置

    基本 DN(Base DN) 根专有名称(DN)将会在你在目录服务器上运行查询的时候使用到.例如: o=example,c=com cn=users,dc=ad,dc=example,dc=com 针 ...