ios9 SFSafariViewController完整web体验
2015-09-01 18:22
519 查看
更多文章: goofyy技术宅
之前IOS8之前,打开应用内的网址一般会有两个方式,但是在IOS9,提供了一个新的应用内浏览网页的方式
旧的方式
在IOS9增加了一种新的应用内浏览网页的方式
SFSafariViewController :通过SFSafariViewController,你几乎可以使用所有Safari的一些便利特性,而无需让用户离开你的应用。
在IOS9之前,一般我们浏览应用无非就是用系统自带的safari,但是通过应用来跳转到浏览器,给用户的体验总是不是很好,用户毕竟离开了你的应用
自定义与webView或许是妥协的一点,但是如果用户在APP中的Web体验的属于第一个用例,那么view controller可能不是你需要的。在这种情况下,您将显示自己的控件和内容,并且可能需要大量的自定义。 如果你发现你的应用适合这种情况下,使用WKWebView 。它是UIWebView的继任者,并包括几个增强功能,如使用 Nitro Javascript engine。这种方法可以让你从头开始构建整个用户界面。还有其他的功能,如安全加载文件和使用WKWebsiteDataStore查询cookies。这些可能就让我们头痛了。
SFSafariViewController
在IOS9.苹果面向开发者提供了SFSafariViewController在不同的应用之间,浏览网页的体验是不同的,这可能会让用户感到疑惑。某些界面可能缺少用户期望的东西,比如表示网页加载进度的进度条。 此外,你也不能使用Safari的全部功能。这包括阅读器视图,自动填充功能用到的iCloud钥匙串等等。如果你想在iOS
9 之前实现这些功能,就不得不让用户完全离开你的应用,去到Safari里打开这些网页。。而SFSafariViewController类解决了所有这些问题。
应用Demo举例
创建3个Button。然后对不同button做跳转
safari跳转打开
用UIWebView打开
使用UIWebView的时候注意。需要在Info.plist里面添加字段。
如果不添加,会报错
这是因为 在iOS9 beta中,苹果将原http协议改成了https协议,使用 TLS1.2 SSL加密请求数据
在SFSafariViewController里面打开URL
然后就搞定了。看一下SFSafariViewController的网页状态。
是不是碉碉哒。哈哈期待9天后的IOS9,打完收工
之前IOS8之前,打开应用内的网址一般会有两个方式,但是在IOS9,提供了一个新的应用内浏览网页的方式
旧的方式
1--Safari:使用openURL(_:)在Safari中展示页面,会不得不让用户离开你的应用。 2--自定义浏览体验:你可以利用WKWebView或UIWebView从头开始创建浏览体验。
在IOS9增加了一种新的应用内浏览网页的方式
SFSafariViewController
SFSafariViewController :通过SFSafariViewController,你几乎可以使用所有Safari的一些便利特性,而无需让用户离开你的应用。
在IOS9之前,一般我们浏览应用无非就是用系统自带的safari,但是通过应用来跳转到浏览器,给用户的体验总是不是很好,用户毕竟离开了你的应用
自定义与webView或许是妥协的一点,但是如果用户在APP中的Web体验的属于第一个用例,那么view controller可能不是你需要的。在这种情况下,您将显示自己的控件和内容,并且可能需要大量的自定义。 如果你发现你的应用适合这种情况下,使用WKWebView 。它是UIWebView的继任者,并包括几个增强功能,如使用 Nitro Javascript engine。这种方法可以让你从头开始构建整个用户界面。还有其他的功能,如安全加载文件和使用WKWebsiteDataStore查询cookies。这些可能就让我们头痛了。
SFSafariViewController
在IOS9.苹果面向开发者提供了SFSafariViewController在不同的应用之间,浏览网页的体验是不同的,这可能会让用户感到疑惑。某些界面可能缺少用户期望的东西,比如表示网页加载进度的进度条。 此外,你也不能使用Safari的全部功能。这包括阅读器视图,自动填充功能用到的iCloud钥匙串等等。如果你想在iOS
9 之前实现这些功能,就不得不让用户完全离开你的应用,去到Safari里打开这些网页。。而SFSafariViewController类解决了所有这些问题。
应用Demo举例
创建3个Button。然后对不同button做跳转
safari跳转打开
let url = NSURL(string: "http://www.goofyy.com") @IBAction func openUrlOnSafari(sender: UIButton) { UIApplication.sharedApplication().openURL(url!) }
用UIWebView打开
@IBAction func openUrlOnWebView(sender: UIButton) { let webView = UIWebView(frame: self.view.bounds) let nsurlRequest = NSURLRequest(URL: url!) webView.loadRequest(nsurlRequest) //webView.reload() self.view.addSubview(webView) }
使用UIWebView的时候注意。需要在Info.plist里面添加字段。
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
如果不添加,会报错
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app‘s Info.plist file.
这是因为 在iOS9 beta中,苹果将原http协议改成了https协议,使用 TLS1.2 SSL加密请求数据
在SFSafariViewController里面打开URL
@IBAction func openUrlOnSafariController(sender: UIButton) { let safariViewController = SFSafariViewController(URL: url!) self.presentViewController(safariViewController, animated: true, completion: nil) }
然后就搞定了。看一下SFSafariViewController的网页状态。
是不是碉碉哒。哈哈期待9天后的IOS9,打完收工
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- Apple Swift学习教程
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
- Swift中定义二维数组的方法及遍历方法示例
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- 简单分析Swift语言的一些基本特征
- Swift与C语言指针结合使用实例
- Swift心得笔记之控制流
- IOS 改变键盘颜色代码