UIWebView在iOS 9中的新特性与HTTPS整合 (uiwebview)


UIWebView在iOS 9中的新特性与HTTPS整合

一、引言

随着移动互联网的飞速发展,iOS操作系统不断更新,为开发者带来了更多强大的工具和API。
其中,UIWebView作为iOS开发中常用的网页浏览组件,也在不断地进行优化和升级。
iOS 9系统中的UIWebView新增了许多重要特性,特别是与HTTPS整合方面的改进,为用户提供了更安全、更高效的网页浏览体验。
本文将详细介绍UIWebView在iOS 9中的新特性以及与HTTPS整合的相关知识。

二、UIWebView在iOS 9中的新特性

1. JavaScript性能优化:iOS 9中的UIWebView对JavaScript性能进行了优化,使得网页加载速度更快,响应更迅速。这得益于Apple对WebKit引擎的改进,让UIWebView在处理JavaScript代码时更加高效。
2. 可交互滚动视图:在iOS 9中,UIWebView支持可交互滚动视图,用户可以在页面加载过程中进行滚动操作。这一特性提高了用户体验,使得用户在等待页面完全加载时,仍然可以通过滚动操作浏览部分内容。
3. 视频支持增强:iOS 9中的UIWebView对视频支持进行了增强,提供了更丰富的视频编解码能力和更好的视频播放器性能。这使得UIWebView在播放视频时更加流畅,减少了卡顿现象。
4. 新增WebView代理方法:iOS 9为UIWebView新增了一些代理方法,使开发者能够更方便地监听网页加载过程中的各种事件,如页面开始加载、页面加载完成等。这些新代理方法有助于开发者更好地控制和管理网页内容。

三、UIWebView与HTTPS整合

1. HTTPS协议简介:HTTPS是一种通过SSL/TLS加密传输数据的协议,它在HTTP协议的基础上提供了数据加密、完整性校验和身份验证等功能,保障了数据传输的安全性。
2. UIWebView支持HTTPS:iOS 9中的UIWebView全面支持HTTPS协议,可以安全地加载和显示HTTPS网页内容。这意味着用户在使用UIWebView浏览网页时,其个人信息和数据将在传输过程中得到保护。
3. HTTPS的优势:使用HTTPS协议,可以提高UIWebView加载网页的安全性,防止数据在传输过程中被截取或篡改。同时,HTTPS还可以提高网页的加载速度,优化用户体验。
4. HTTPS配置注意事项:在使用UIWebView加载HTTPS网页时,开发者需要注意以下几点:

(1)确保使用的SSL证书是合法有效的,避免证书错误导致的安全问题;

(2)检查服务器的SSL/TLS版本,确保与UIWebView的兼容性;

(3)在加载HTTPS网页前,进行网络权限申请,避免应用因缺乏网络权限而无法正常加载网页。

四、实例应用

为了更好地理解UIWebView在iOS 9中的新特性以及与HTTPS整合的应用,下面给出一个简单的实例:

1. 在Xcode中创建一个新的iOS项目;
2. 在项目中添加UIWebView组件;
3. 使用UIWebView加载HTTPS网页;
4. 利用新特性优化网页加载速度和用户体验;
5. 通过代理方法监听网页加载事件,实现更精细的控制和管理。

五、总结

iOS 9中的UIWebView新增了许多重要特性,特别是与HTTPS整合方面的改进。
这些新特性为用户提供了更安全、更高效的网页浏览体验。
开发者应充分利用这些新特性,提高应用的性能和用户体验。
同时,在使用UIWebView加载HTTPS网页时,开发者也需要注意配置和安全性问题。


如何实现点击UIWebView中链接调用Safari打开目标链接

Safari同一窗口打开新标签 1、单击右上角的“设置”图标 2、选择“偏好设置”,然后选择“标签”选项卡 也可以按快捷键 Ctrl + ,(英文状态下),同样可以打开标签窗口。 3、单击“在标签(而不是窗口)中打开页面”右边的下拉列表框,选择“总是”。

ios之javascriptcode怎么用

在我开始使用OpenAphid-Engine的时候,已经有几种类似的iOS/Android 项目.这些商业项目或者开源项目使用JavaScript实现代码特性。 比如,Titanium 和PhoneGap 允许开发者使用JavaScript开发本地 iOS/Android apps;ngCore 更是可以使用纯正的JavaScript构建跨平台的游戏。 JavaScript已经成为了编程语言中的佼佼者,也因为更容易学习吸引了众多开发者参与到这一领域。 怎样在IOS/Android上使用JavaScript主要有两种方法。 一种是使用系统的浏览器组件(IOS中的UIWebView和Android中的WebView),另一方法就是使用整合好的JavaScript引擎。 使用系统的浏览器组件比较容易实现但是更复杂,效率也低。 WebView提供了 addJavascriptInterface 把Java classes注入到JavaScript文本的方法。 但是它只支持最原始的几种数据类型,因此也局限了API设计。 并且在Android 2.3模拟器上不稳定,在真机上也会遇到 issue #的问题。 在IOS上更糟 UIWebView没有公共的APIs支持JavaScript到Objective-C的交互(你必须使用似有的APIs才能达到与addJavascriptInterface相同的功能)。 PhoneGap 是基于 UIWebView and WebView的比较出名的项目。 开发者被迫使用回调函数从JavaScript APIs得到返回值。 这在游戏上效率极低,也更为复杂。 早期的ngCore同样依赖UIWebView来支持iOS。 但是这个机制由于其糟糕的表现被取代。 为了获得更好的表现、灵活性、兼容性,嵌入全功能的JavaScript引擎变得更为有效。 选择JavaScript 引擎 据我所知,iOS 或 android 上能够运行的JavaScript 引擎有4个: JavaScriptCore, SpiderMonkey, V8 and Rhino.下面这个表格展示各个引擎在iOS 和 Android 的兼容性 当我设计 OpenAphid-Engine 成为一个合适的Javascript的引擎的时候,我主要考量以下指标: 兼容性:同时支持iOS 和 Android 在x86 和 ARM 平台上的 模拟器和 设备。 稳定性. 稳定的运行在对应的平台和CPU的架构上。 扩展性. 能够很方便的利用本地特性进行扩展。 例如OpenAphid-Engine 通过一个桥接层,实现了通过Javascript 进行OpenGL ES 的使用。 性能好:一个快速的Javascript 引擎主要归结为两个因素:有效的绑定机制和进行较低的开销。 . OpenAphid-Engine 在渲染一帧页面的时候通过JavaScript触发数百个OpenGL ES调用来进行渲染。 这点是非常有意义的,如果只是把开销放到单纯的执行JavaScript上进行将会导致渲染很慢,。 体积小.:在内存的占用上和自身的执行文件上都要比较小。 Rhino和 V8出现的最早,但是不支持iOS。 我非常希望可以使用 V8开发 OpenAphid-Engine ,在初次使用时就发现它拥有优雅的代码结构,良好的表现,但是我非常失望,因为 V8只能在JIT模式下使用,而IOS不支持。 除非你使用jailbroken设备。 (详情请参考 issue #1312)我在JavaScriptCore和SpiderMonkey间纠结了很久。 在成功部署了Android和IOS项目后,我通过实验找到更好的一个。 SpiderMonkey 容易得到开发权限,但是在与JavaScriptCore比较时甘拜下风。 SpiderMonkey产生了大量的二进制文件 (在ARMv7上大约1.3MB);JavaScript执行得更慢,在JavaScript和C++的桥接表现更为重要。 另外一个让我远离SpiderMonkey的原因是在iOS模拟器上出现随机崩溃现象。 JavaScript引擎会受很多东西影响,比如交叉编译器的版本、引擎的版本和操作系统的种类等。 下表列举了几种运行在iPod Touch 4上引擎的运行时间。 (有兴趣请于Google Doc查看精确的时间)JavaScriptCore 大比分领先。 我没有找到SpiderMonkey,所以就使用了下面的三种自定义搭建Cocos2d-iPhone-2.1-beta4, Cocos2d-x-2.1-beta3和iMonkey。 所有测试的apps都基于LLVM 4.1版本,所有的引擎都运行在解释器模式(iOS受限)。 几种基准的介绍:1m-js_loop执行空循环一百万次。 1m-native_function请求调用一百万次返回undefined的本地函数1m-js_function跟上面一个相同,只是换成了JavaScript。 fib(30)递归的方式计算Fibonacci(30)。 sudoku-5用这里的算法解决Sudoku问题。 1m-native_function JavaScriptCore使用可移植的C APIs实现,当然这不是最有效引入本地函数的方法。 SpiderMonkey 在台式电脑上由于高级的JIT追踪方法运行更快,但是在IOS设备上却与之相反。 在大部分的基准上,使用iMonkey比SpiderMonkey更快很明显的,使用SpiderMonkey将会在iOS上获得更好的表现。 ngCore 1.10在iOS上加入自定义功能,所以要更优于像SpiderMonkey这样的变体。 对于JavaScript Code 的挑战在我专心于 JavaScriptCore之后,我的研究更进了一步:1. 它在运行 一百万 次 native_function和 一百万次(0)的时间六倍于 使用 JavaScriptCore.我观察到同样的性能问题出现在通过注入的方式访问对象的属性。 2. 利用 C APIs 进行设计虽然开发简单,但是缺乏灵活的内存管理机制。 缺乏一个高级的内部垃圾回收机制很难解决类似于 circular references 的问题。 3. 众多的 JavaScriptCore 正式版本都是可用的 。 不过 OpenAphid-Engine 是更好的一个,它不但速度快,而且相当小。 我抛弃了原来的使用 C APIs 方案因此解决了 问题 1 和 2.使用的JSC 版本来自于iOS4.3.3,因为同样在解析器模式下这个版本相比来自于iOS 5 的版本更快,执行文件更小。 在其他产品上使用的JS引擎在开发OpenAphid-Engine期间,我一直保持对其他引擎的关注,以下这个表格总结了其他JS引擎的使用情况

如何处理ios开发中的屏幕适配问题

屏幕适配问题共有四种解决方案:(1)根据屏幕宽高写控件frame(下策);(2)Autoresizing的使用(中策);(3)AutoLayout的使用(上策);(4)sizeClasses+AutoLayout的使用(上上策)。 下面将会分别来进行叙述。 (1)根据当前屏幕的宽高写frame在新特性界面中,根据:[UIScreen mainScreen].来判断用户的屏幕长度,来判断时3.5寸,4寸,4.7寸,5.5寸,以此来设置新特性中图片选用哪套。 常用写法:#define JKScreenW [UIScreen mainScreen] btnW = JKScreenW * 0.2;缺点:代码复杂,容易出错;而且维护难度大,灵活性极差。 (2)Autoresizing使用在Autolayout以前,有Autoresizing可以做屏幕适配,但局限性较大,只能针对父子关系进行有限调整,如边距固定,尺寸可变,对于兄弟关系的调整无法实现。 对于UI比较固定的app,这种方式基本满足。 相比之下,Autolayout比Autoresizing强大很多。 (3)Autolayout使用--在以前的iOS程序是怎样布局UI的?经常编写大量的坐标计算代码;为了保证在各种屏幕上都能有完美的UI界面效果,有时还需要分别为几种屏幕编写不同的坐标计算代码(即传说中的“屏幕适配”)--什么是Autolayout?Autolayout是一种“自动布局”技术,专门用来布局UI界面的。 Autolayout自iOS6开始引入,由于Xcode4的不给力,当时并没有得到很大的推广。 自iOS7(Xcode5)开始,Autolayout的开发效率得到很大的提升。 苹果官方也推荐开发者使用Autolayout来布局UI界面。 Autolayout能够很轻松的解决屏幕适配的问题。 (4)Size Classes使用iOS8中新增了Size Classes特性,他是对当前所有iOS设备尺寸的一个抽象。 用法:屏幕的宽和高分别分成三种情况:(Compact,Regular,Any).也就是紧凑,正常和任意。 这样宽和高三三整合,一共九种情况。 针对每一种情况,如果需要的话,我们可以单独在storyboard或xib中设置UIView的自动布局约束,甚至某一个button是否显示都是能轻松实现的。


收藏

iOS 9下UIWebView与HTTPS的安全交互体验

PC游戏之光——《传奇MMORPG世界》深度解析:奇幻大陆的游戏历程与产业影响 一、背景介绍 游戏背景设定在一个奇幻的古代大陆,融合了东西方神话元素,拥有独特的文化、历史与世界观。 二、游戏起因 由创新公司研发,旨在跨越时空和地域限制,提供...

评 论
请登录后再评论