怎样自行开发一个webkit内核开发教程的浏览器

首先得搞懂观赏器内核原形指的是什么观赏器内核又没关系分红两局限:渲染引擎(layout engineer 或许 Rendering Engine)和 JS引擎。它有劲取得网页的形式(HTML、XML、图像等等)、整顿讯息(例如参预 CSS等),以及计算网页的显示方式,然后会输入至显示器或打印机。观赏器的内核的不同对付网页的语法说明会有不同,所以渲染的效果也不无别。全面网页观赏器、电子邮件客户端以及其它须要编辑、显示网络形式的应用程序都须要内核。你看前端。JS引擎则是解析 Jaudio-videothe waycript 言语,执行 jaudio-videothe waycript 言语来告终网页的静态效果。最出手渲染引擎和 JS 引擎并没有分别的很明确,其后 JS引擎越来越独立,内核就倾向于只指渲染引擎。事实上笔记本内存条推荐。有一个网页圭表盘算小组创造了一个 ACID来测试引擎的兼容性和职能。内核的品种很多,如加上没什么人应用的非商业的收费内核,可能会有 10多种,但是罕见的观赏器内核没关系分这四种:Trident、Gecko、Blink、Webkit。Trident(IE内核):该内核程序在 1997 年的 IE4 中初度被采用,是微软在Mosaic(”马赛克”,这是人类历史上第一个观赏器,从此网页没关系在图形界面的窗口观赏) 代码的本原之上点窜而来的,并沿用到IE11,也被普遍称作 “IE内核”。你看内存介绍。Trident ()Trident现实上是一款关闭的内核,其接口内核设计的相当幼稚,以是才有许多采用 IE内核而非 IE 的观赏器(壳观赏器)涌现。由于 IE 自身的 “垄断性”(固然表面上 IE 并非垄断,但现实上,了解。特别是从Windows 95 年代一直到 XP 初期,就市场占据率来说 IE 确凿借助 Windows 的春风处于 “垄断” 的位置)而使得Trident 内核的恒久一家独大,微软很长时间都并没有更新 Trident 内核,这招致了两个后果——一是 Trident内核也曾简直与 W3C 圭表脱节(2005年),二是 Trident 内核的多量 Bug等宁静性题目没有取得及时处分,然后加上一些尽力于开源的征战者和一些学者们公然自己以为 IE观赏器不宁静的意见,对比一下内核。也有很多用户转向了其他观赏器,Firefox 和 Opera 就是这个时候兴起的。非 Trident内核观赏器的市场占据率大幅进步也以致许多网页征战人员出手小心网页圭表和非IE观赏器的观赏效果题目。补充:IE 从版本 11 出手,初步救援 WebGL 技术。IE8 的 Jaudio-videoaScript 引擎是Jscript,IE9 出手用 Chakra,这两个版本区别很大,Chakra岂论是速度和圭表化方面都很精彩。国际很多的双核观赏器的其中一核便是 Trident,美其名曰“兼容形式”。Window10 发布后,IE 将其内置观赏器命名为 Edge,学会内核。Edge最明显的特质就是新内核 EdgeHTML。关于 Edge 观赏器更多没关系参考 如何评价 Microsoft Edge观赏器?Gecko ()Gecko(Firefox 内核):Netscape6 出手采用的内核,其后的Mozilla FireFox(火狐观赏器) 也采用了该内核,Gecko的特质是代码完全公然,以是,其可征战水平很高,全世界的程序员都没关系为其编写代码,增加功效。由于这是个开源内核,以是遭到许多人的喜爱,主流。Gecko内核的观赏器也很多,这也是 Gecko 内核固然年老但市场占据率能够迅速进步的重要理由。事实上,Gecko 引擎的由来跟 IE 不无干系,后面说过 IE 没有应用 W3C的圭表,这招致了微软外部一些征战人员的满意;他们与其时已经停止更新了的 Netscape 的一些员工一起兴办了Mozilla,以其时的 Mosaic 内核为本原重新编写内核,于是开收回了 Gecko。不过事实上,Gecko 内核的观赏器仍旧还是Firefox (火狐) 用户最多,所以有时也会被称为 Firefox 内核。对比一下内存介绍。此外 Gecko也是一个跨平台内核,没关系在Windows、 BSD、Linux 和 Mhvac OS X 中应用。Webkit一提到 webkit,首先想到的便是 chrome,没关系说,chrome 将 Webkit内核不得人心,其实主流浏览器内核介绍(前端开发值得了解的浏览器内核历史)。殊不知,Webkit 的鼻祖其实是 Svery fari。今朝很多人不对地把 webkit 叫做 chrome内核(假使chrome内核已经是 flicker 了),苹果都哭瞎了有木有。Svery fari 是苹果公司征战的观赏器,应用了KDE(Linux桌面编制)的 KHTML 作为观赏器的内核,Svery fari所用观赏器内核的称号是赫赫出名的 WebKit。 Svery fari 在 2003 年 1 月 7 日首度发行测试版,并成为 Mhvac OSX v10.3 与之后版本的默许观赏器,也成为苹果其它系列产品的指定观赏器(也已救援 Windows 平台)。如上述可知,我不知道浏览器。WebKit 前身是 KDE 小组的 KHTML 引擎,没关系说 WebKit 是 KHTML的一个开源的分支。当年苹果在比力了 Gecko 和 KHTML 后,选拔了后者来做引擎征战,是由于 KHTML具有了解的源码组织和极快的渲染速度。Webkit内核 没关系说是以硬件盈利为主的苹果公司给软件行业的最大劳绩之一。随后,2008 年谷歌公司发布 chrome观赏器,采用的 chromium 内核便 fork 了 Webkit。Chromium/Bink2008 年,谷歌公司发布了 chrome 观赏器,观赏器应用的内核被命名为 chromium。想知道笔记本内存条。chromium fork 自开源引擎 webkit,却把 WebKit的代码梳理得可读性进步很多,看看。所以以前可能须要一天实行编译的代码,今朝只消两个小时就能搞定。以是 Chromium 引擎和其它基于WebKit 的引擎所渲染页面的效果也是有出入的。所以有些地址会把 chromium 引擎和 webkit分别隔隔割裂漫来独立先容,其实历史。而有的文章把 chromium 归入 webkit 引擎中,都是有必定道理的。谷歌公司还研发了自己的 Jaudio-videothe waycript 引擎,V8,相比看内存条。极大地进步了 Jaudio-videothe waycript 的运算速度。chromium 问世后,带动了国产观赏器行业的成长。一些基于 chromium的单核,双核观赏器如雨后春笋般拔地而起,例如 搜狗、360、QQ观赏器等等,无一不是套着不同的外壳用着无别的内核。然则 2013 年 4 月 3 日,对比一下4g内存条价格!PC
X345 X225 X235 X335 XP5769谷歌在 Chromium Blog 上揭晓 博客,听说笔记本内存条。称将与苹果的开源观赏器主题Webkit 南辕北辙,在 Chromium 项目中研发 Blink 渲染引擎(即观赏器主题),内置于 Chrome观赏器之中。webkit 用的好好的,为何要投入到一个新的内核中去呢?Blink 其实是 WebKit 的分支,仿佛 WebKit 是 KHTML 的分支。Google 的 Chromium项目此前一直应用 WebKit(WebCore) 作为渲染引擎,但出于某种理由,并没有将其多进程架构移植入Webkit。其后,4g内存条推荐。由于苹果推出的 WebKit2 与 Chromium 的沙箱设计保存龃龉,所以 Chromium 一直搁浅在WebKit,并应用移植的方式来告终和主线 WebKit2 的对接。这增加了 Chromium 的纷乱性,且在必定水平上影响了Chromium 的架构移植管事。内存条。基于以上理由,Google 决意从 WebKit 衍生出自己的 Blink 引擎(后由 Google 和 OperaSoftwtypicingly 联合研发),将在 WebKit 代码的本原上研发越发火速和繁复的渲染引擎,并渐渐脱离 WebKit的影响,创造一个完全独立的 Blink 引擎。这样以来,独逐一条维系 Google和苹果之间技术干系的纽带就这样被切断了。Google 和苹果在多个规模都是角逐对手,而唯独在观赏器引擎上有技术配合,主流浏览器内核介绍(前端开发值得了解的浏览器内核历史)。利益一致。但为了各自的利益,谁都不会拿出100% 的 “诚意” 来做好WebKit,由于你做进去的结果角逐对手没关系间接享用。搬动互联网已经兴起,手机和平板设备端必将成为观赏器的另一个战场。这个时候,倘使Google 跟苹果仍旧黏在一起,将会吃紧阻拦两边的前进,也会阻拦 WebKit 的前进。我不知道内存条。传说 Blink 删除了 880w 行 webkit 代码。至于为什么叫 flicker?有风趣的没关系看下这篇访谈 Paul Irish on Chrome Moving toBlink,对比一下内存条什么牌子好。内里说it fits thto Blink will never support the infhamoustag.
Blink 引擎问世后,国产各种 chrome 系的观赏器也纷繁投入 Blink 的怀抱,没关系在观赏器地址栏输入chrome://version 实行稽查。歧在 360 下:听听内存条简介。Presto ()Presto 是挪威产观赏器 opera 的 “后任” 内核,为何说是 “后任”,由于最新的 opera观赏器早已将之抛弃从而投入到了谷歌大本营。Opera 的一个里程碑作品是 Opera7.0,由于它应用了 Opera Softwtypicingly 自主征战的 Presto渲染引擎,取代了旧版 Opera 4 至 6 版本应用的 Elektra排版引擎。该款引擎的特质就是渲染速度的优化到达了极致,然则代价是牺牲了网页的兼容性。Presto 参预了静态功效,例如网页或其局限可随着 DOM 及 Script 语法的事变而重新排版。Presto在推出后无间有更新版本推出,你知道4g内存条价格。使不少不对得以修正,以及阅读 Jaudio-videothe waycript 效能得以最佳化,开发。并成为其时速度最快的引擎。然则为了裁汰研发本钱,Opera 在 2013 年 2 月宣布松手 Presto,转而跟随 Chrome 应用 WebKit分支的 Chromium 引擎作为自家观赏器主题引擎,Presto 内核的 Opera 观赏器版本永远的搁浅在了 12.17。在Chrome 于 2013 年推出 Blink 引擎之后,你知道笔记本内存条。Opera 也紧跟其脚步表示将转而应用 Blink作为观赏器主题引擎。Presto 与开源的 WebKit 和经过谷歌加持的 Chromium 系列相比毫无扩张上的上风,这是 Opera 转投WebKit 的主要理由,并且应用 WebKit 内核的 Opera 观赏器没关系兼容谷歌 Chrome观赏器海量的插件资源。但是换内核的代价对付 Opera 来说过于惨痛。应用谷歌的 WebKit 内核之后,正本火速,看着得了。轻量化,巩固的Opera 观赏器变得十分的卡顿,而且显露不巩固,Opera 正本旧内核观赏器书签同步到新内核上的管事 Opera花了整整两年时间,时候很多 Opera的用户纷繁转投谷歌观赏器和其他观赏器,变成了众多的用户丧失。介绍。时至本日今朝还有上千万人在应用老版本的 Opera。很多人都以为 Opera 观赏器终止在了 12.17,以后所更新的 Opera 版本号不再是原来那个Opera。说好的 Presto Forever 呢?关于搬动端
搬动端的观赏器内核主要说的是编制内置观赏器的内核。
目前搬动设备观赏器上常用的内核有 Webkit,Blink,相比看台式机内存条推荐。Trident,Gecko 等,其中 iPhone 和 iPposting 等苹果iOS 平台主要是 WebKit,Android 4.4 之前的 Android 编制观赏器内核是 WebKit,Android4.4编制观赏器切换到了Chromium,内核是 Webkit 的分支 Blink,听听浏览器。Windows Phone 8 编制观赏器内核是Trident。
观赏器内核主要指的是观赏器的渲染引擎,2013 年以前,代表有Trident(IE),Gecko(firefox),Webkit(Svery fari chrome 等)以及Presto(opera)。2013 年,谷歌出手研发 flicker 引擎,chrome 28 以后出手应用,而 opera则松手了自主研发的 Presto 引擎,投入谷歌怀抱,和谷歌一起研发 flicker 引擎,国际各种chrome系的观赏器(360、UC、QQ、2345 等等)也纷繁松手 webkit,投入 flicker 的怀抱。值得。
还有一点文章里没有说的很明白,就是 Webkit 其实是 KHTML 的分支,其实4g内存条推荐。这里的 KHTML 指渲染引擎,Webkit其实就泛指了 Webkit 的渲染引擎 WebCore,而 Webkit 引擎的 Jaudio-videothe waycript 引擎 JSCore 则是KJS 的分支。而 chrome 则搭载了自己的 Jaudio-videothe waycript 引擎 V8。援用 各支流观赏器内核先容里的一段话:
我们下面提到 Chrome 是基于 WebKit 的分支,而 WebKit 又由渲染引擎 “WebCore” 和 JS 说明引擎“JSCore” 组成,可能会让你搞不清 V8 和 JSCore 的干系。你没关系这样剖释—— WebKit 是一块主板,JSCore是一块可装配的内存条,谷歌现实上以为 Webkit 中的 JSCore 不够好,才自己搞了一个 V8 JS 引擎,这就是 Chrome比 Svery fari 在某些 JS 测试中效率更高的理由。
倘使说 chromium 还不敷以脱离 Webkit 的 “帽子”,对于内存条什么牌子好。Blink 的出现,代表着 chrome将自主研发渲染引擎(Blink)以及 Jaudio-videothe waycript 引擎(V8)。没关系等候在不久的来日,人们谈起 chrome 想到的不是Webkit 而是 Blink。
(责任编辑:PC计算机硬件网)
优秀产品展
优秀企业展360浏览器全球首家支持“内核自主控制”功能
&&日 16:40 &&&
通信世界网讯()& 当前,国内的主流浏览器产品,多数都采用双核的架构设计:基于Webkit内核用于常用网站的高速浏览,基于IE的内核用于兼容网银、旧版网站,以应对不同的用户需求。但是,一方面,很多网站只针对特定浏览器内核进行设计,如ie6、ie7,换一个浏览器内核会出现严重的兼容性问题。另一方面,网站的工程师需要花费大量时间,让代码兼容多套浏览器内核下的展现效果。现在,这一状况可能将会成为历史,360浏览器将成为全球首家支持“内核自主控制”功能的产品。
图:360浏览器全球首家支持“内核自主控制”功能
据360浏览器人员介绍,以360的几款浏览器为例,都是优先通过Webkit内核渲染主流的网站,只有小量的网站通过IE内核渲染,以保证页面兼容。对于浏览器内核选择主要的控制手段是一个通过长期人工运营收集的几百KB大小网址库。
尽管技术人员努力通过用户反馈、站长投诉和建议,人工方式将该网站指定使用合适的内核进行浏览。并且通过代码标签智能判断技术提高浏览器的自动切核准确率。但是在很多情况下,仍然无法达到百份百正确。
因此,360通过技术研发新增加了一个控制手段:内核控制Meta标签。只要网站开发者在自己的网站里增加一个Meta标签,告诉360浏览器这个网址应该用哪种内核渲染,那么360浏览器就会在读取到这个标签后,立即切换对应的内核。并将这个行为应用于这个二级域名下所有网址。
据了解,这个标签主要针对当前一些站长、政府(如银行、税务、海关、移动营业厅)、企业内网、企业OA、网上学校中一些仅支持IE6、IE7的网站、或是系统,这些网站如果用Webkit内核或者高版本IE内核打开,常常会出现兼容性问题。
现在,360率先支持的这个标签,开发者只需在网页或者OA中加入一小段代码,标志出该网页用哪个内核打开,360浏览器就能自动根据网站开发者的需求进行选择,避免出现兼容性问题。因为如果没有标示,360浏览器的网址数据库中事先也没有加入这个网站,就会默认用Webkit(极速内核打开)。
有消息称,360浏览器全线产品都将支持这一功能。分析人士表示,360作为国内最大的浏览器厂商,全球首家推出这一功能,方便广大站长和前端开发,在行业内部必将引导潮流,势必推动这项技术成为行业标准。
来源:通信世界网 &&编 辑:魏慧
猜你还喜欢的内容
文章评论【】
评论内容..使用renderer meta标签使双核浏览器以指定内核处理自己的网页
众所周知,在中国这片神奇的土地上,由于相当一部分「陈旧」、「老化」的网站只有使用IE6、IE7等浏览器才能正常显示,而IE6、IE7等老版本的浏览器在性能、显示以及对HTML5、CSS3的支持等方面又饱受诟病,从而催生了大量的「双核」浏览器,例如:360极速浏览器、搜狗浏览器、淘宝浏览器、枫树浏览器、猎豹浏览器。 「双核」浏览器,顾名思义,就是浏览器内部包含两个渲染内核。目前大多数「双核」浏览器内部的两个内核分别是IE内核和WebKit内核。与双核处理器不同的是,「双核」浏览器的两个内核并不能同时为一个网页进行渲染排版工作,而是根据我们的需要,选择两者之中更适合当前网页的内核来进行渲染排版。IE内核主要用于兼容「老一辈」的网页,使其能够正常显示;WebKit内核则用于渲染「新一代」的网页,从而发挥出更快的显示速度、更好的显示效果、更优异的脚本执行性能。实际上,大多数用户并不关心(或者并不知道)双核浏览器的作用,也不会手动选择适合的渲染内核来渲染当前网页,选择渲染内核的工作一般都是浏览器自身「智能」完成的。
不过,浏览器的「智商」毕竟有限,并不总是能够准确地选择出适合当前网页的渲染内核。如果我们的网站属于「崭新的一代」(比如使用了大量HTML5的新特性),而「双核」浏览器却错误地使用IE内核来进行渲染排版,那么用户看到的将会是一堆乱七八糟的东西。这当然不是用户想看到的,更不是我们想见到的。此时,我们可以使用&meta&标签来指定适合自己网站的渲染内核名称,当双核浏览器访问本网页时,就会根据我们的指示,选择我们指定的渲染内核来处理网页。&meta name=&renderer& content=&webkit|ie-stand& /&如上述代码所示,我们只需要在网页头部添加name属性为renderer的&meta&标签即可。该meta标签的content属性用于指定渲染内核的名称,例如webkit(WebKit内核)、ie-stand(IE内核-标准模式)、ie-comp(IE内核-兼容模式)。我们也可以同时指定多个内核名称,之间以符号&|&进行分隔,此时浏览器将会按照从左到右的先后顺序选择其具备的渲染内核来处理当前网页。注意:目前只有360旗下全系列双核浏览器识别该meta标签。其他浏览器厂商可能会在以后版本的浏览器中添加对该meta标签的支持。
我们认为:用户的主要目的,是为了获取有用的信息,而不是来点击广告的。因此本站将竭力做好内容,并将广告和内容进行分离,确保所有广告不会影响到用户的正常阅读体验。用户仅凭个人意愿和兴趣爱好点击广告。
我们坚信:只有给用户带来价值,用户才会给我们以回报。基于webkit内核浏览器的文件上传方法及装置制造方法
基于webkit内核浏览器的文件上传方法及装置制造方法
【专利摘要】本发明提出一种基于webkit内核浏览器的文件上传方法,其包括利用webkit内核浏览器中的UIWebView控件监测页面中与上传文件相关的触发按钮所链接的url请求;判断UIWebView控件所监测到的url请求是否包含约定的协议开头,如果判断结果为是,接收并上传文件;否则,不进行文件上传。本发明还提出一种基于webkit内核浏览器的文件上传装置。本发明的文件上传方法及装置通过UIWebView控件监测url请求,并判断该请求是否包含约定的协议开头,如果判断结果为是,接收并上传文件;否则,不进行文件上传,解决了传统的iOS装置的webkit浏览器无法上传文件的问题,方便用户上传文件。
【专利说明】基于webkit内核浏览器的文件上传方法及装置
【技术领域】
[0001]本发明涉及互联网【技术领域】,特别是涉及一种基于webkit内核浏览器的文件上传方法及装置。
【背景技术】
[0002]iOS装置是由美国苹果公司开发的一种手持设备操作装置。iOS与苹果的Mac OSX操作装置一样,它也是以Darwin为基础的,Darwin是由苹果公司于2000年所发布的一个开放源代码操作系统,是一种Unix-1ike操作系统,因此iOS与Mac OS X同样属于类Unix的商业操作装置。WebKit是一个开源的浏览器内核,苹果公司采用WebKit作为iOS装置的浏览器内核。WebKit内核拥有清晰的源码结构、极快的渲染速度。
[0003]目前,iOS装置已经占据了全球智能手机装置市场份额的30%,在美国的市场占有率更高达43%。作为一个移动终端浏览器,用户可能随时访问邮箱、微博、以及各类网站,文件上传已成为一种必需的功能,然而,在iOS装置的webkit浏览器却不具备文件上传的功能,这是因为iOS装置限制应用程序访问本地文件装置,因此在基于webkit的浏览器中,对于页面内的type= “file"类型的input标签,用户无法点击本地文件装置的图片去上传。
【发明内容】
[0004]本发明的目的在于,解决传统的iOS装置的webkit浏览器无法上传文件的问题,方便用户上传文件。
[0005]本发明的目的及解决其技术问题是采用以下技术方案来实现的。
[0006]一种基于webkit内核浏览器的文件上传方法,包括:利用webkit内核浏览器中的UIWebView控件监测页面中与上传文件相关的触发按钮所链接的url请求;判断UIWebView控件所监测到的url请求是否包含约定的协议开头,如果判断结果为是,接收并上传文件;否则,不进行文件上传。
[0007]一种基于webkit内核浏览器的文件上传装置,包括:监测模块,用于利用webkit内核浏览器中的UIWebView控件监测页面中与上传文件相关的触发按钮所链接的url请求;判断执行模块,用于判断UIWebView控件所监测到的url请求是否包含约定的协议开头,如果判断结果为是,接收并上传文件;否则,不进行文件上传。
[0008]本发明的文件上传方法及装置通过UIWebView控件监测url请求,并判断该请求是否包含约定的协议开头,如果判断结果为是,接收并上传文件;否则,不进行文件上传,解决了传统的iOS装置的webkit浏览器无法上传文件的问题,方便用户上传文件。
【专利附图】
【附图说明】
[0009]图1为本发明第一实施例中的基于webkit内核浏览器的文件上传方法的流程示意图。
[0010]图2为本发明第二实施例中的基于webkit内核浏览器的文件上传方法的流程示意图。
[0011]图3为本发明第二实施例中的文件上传的代码举例。
[0012]图4为本发明第三实施例中的基于webkit内核浏览器的文件上传装置的结构示意图。
[0013]图5为本发明第四实施例中的基于webkit内核浏览器的文件上传装置的结构示意图。
【具体实施方式】
[0014]为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的基于webkit内核浏览器的文件上传方法及装置其【具体实施方式】、方法、步骤、特征及其功效,详细说明如下。
[0015]有关本发明的前述及其他技术内容、特点及功效,在以下配合参考图式的较佳实施例的详细说明中将可清楚呈现。通过【具体实施方式】的说明,当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图式仅是提供参考与说明之用,并非用来对本发明加以限制。
[0016]第一实施例
[0017]图1为本发明第一实施例中的基于webkit内核浏览器的文件上传方法的流程示意图。请参照图1,本发明第一实施例中的基于webkit内核浏览器的文件上传方法包括:
[0018]步骤S 11:利用webkit内核浏览器中的UIWebView控件监测页面中与上传文件相关的触发按钮所链接的url请求。
[0019]步骤S12:判断UIWebView控件所监测到的url请求是否包含约定的协议开头,如果判断结果为是,接收并上传文件;否则,不进行文件上传。
[0020]当用户需要上传文件上,首先点击页面中与上传文件相关的触发按钮,例如点击“上传”、“浏览”等,于本发明中,这个与上传文件相关的触发按钮与url请求相链接。当webkit内核浏览器中的UIWebView控件监测到的url请求包含约定的协议开头时,即认为用户触发了文件上传请求。约定的协议开头事先可以根据需要进行设定,例如可以设定为“http://wbupload"等,当然,本发明并不以此为限。
[0021]本实施例中的基于webkit内核浏览器的文件上传方法采用链接的形式取代了input标签,用户点击触发按钮后便触发了 webkit内核浏览器中的UIWebView控件,通过UIffebView控件监测url请求,并判断该请求是否包含约定的协议开头,如果判断结果为是,接收并上传文件;否则,不进行文件上传,解决了传统的iOS装置的webkit浏览器无法上传文件的问题,方便用户上传文件。
[0022]第二实施例
[0023]图2为本发明第二实施例中的基于webkit内核浏览器的文件上传方法的流程示意图。请参照图2,本发明第二实施例中的基于webkit内核浏览器的文件上传方法包括:
[0024]步骤S21:利用webkit内核浏览器中的UIWebView控件监测页面中与上传文件相关的触发按钮所链接的url请求。
[0025]步骤S22:判断UIWebView控件所监测到的url请求是否包含约定的协议开头,如果判断结果为是,则进行步骤S23:接收并上传文件;否则,不进行文件上传。[0026]于本实施例中,步骤S23进一步包括:
[0027]步骤S231:接收上传文件的请求。
[0028]于本实施例中,与上传文件相关的触发按钮所链接的url请求例如为:http://wbupload://somehost/somepath?somequery&cookiejs=funcl&successjs=func2&positionj s=func3,其中 http://wbupload:为约定的协议开头;somehost/somepath?somequery&为与文件上传相关的 post 请求的 url ;http: //wbupload: //somehost/somepath?somequery&cookiejs=funcl&successjs=func2&positionjs=func3 为固定格式,只是 funcl、func2&func3(js函数名,且不带括号对)具体名字视服务器下发。
[0029]于此步骤中,可以通过nWebView控件调用上述func Ij s函数获得发送上传请求用到的cookie值,获得cookie是为了获取用户的身份等信息,比如是哪个用户在进行上传等。
[0030]步骤S232:生成并弹出文件选择框。
[0031]于此步骤中,可以通过UIWebView控件调用上述func3j s函数得到一个jselement对象,客户端自己设计算法,计算出所述选择框应指向的位置。
[0032]步骤S233:判断是否选择了待上传的文件,如果选择了待上传的文件则开始上传所选择的文件。
[0033]选好文件后,开始上传,客户端有upload界面,上传代码具体可以为图3中所示的代码,当然,本发明并不以此为限。
[0034]步骤S234:展示上传文件后的页面。
[0035]于此步骤中,文件上传成功后,利用UIWebView控件调用相关上述func2j s函数以显示所述上传文件后的页面,例如将response body(text格式)做为func2js函数的参数,运算func2jS函数,就会显示上传后的页面。
[0036]本实施例中的基于webkit内核浏览器的文件上传方法采用链接的形式取代了input标签,用户点击触发按钮后便触发了 webkit内核浏览器中的UIWebView控件,通过UIffebView控件监测url请求,并判断该请求是否包含约定的协议开头,如果判断结果为是,接收并上传文件;否则,不进行文件上传,解决了传统的iOS装置的webkit浏览器无法上传文件的问题,方便用户上传文件。
[0037]第三实施例
[0038]图4为本发明第三实施例中的基于webkit内核浏览器的文件上传装置的结构示意图。请参照图4,本发明第三实施例中的基于webkit内核浏览器的文件上传装置30包括:
[0039]监测模块31:用于利用webkit内核浏览器中的UIWebView控件监测页面中与上传文件相关的触发按钮所链接的url请求。
[0040]判断执行 模块32:用于判断UIWebView控件所监测到的url请求是否包含约定的协议开头,如果判断结果为是,接收并上传文件;否则,不进行文件上传。
[0041]当用户需要上传文件上,首先点击页面中与上传文件相关的触发按钮,例如点击“上传”、“浏览”等,于本发明中,这个与上传文件相关的触发按钮与url请求相链接。检测模块31监测到的url请求包含约定的协议开头时,即认为用户触发了文件上传请求。约定的协议开头事先可以由设置模块32根据需要进行设定,例如可以设定为“http://wbupload"等,当然,本发明并不以此为限。
[0042]本实施例中的基于webkit内核浏览器的文件上传装置通过检测模块监测url请求,并通过判断执行模块判断该请求是否包含约定的协议开头,如果判断结果为是,接收并上传文件;否则,不进行文件上传,解决了传统的iOS装置的webkit浏览器无法上传文件的问题,方便用户上传文件。
[0043]第四实施例
[0044]图5为本发明第四实施例中的基于webkit内核浏览器的文件上传装置的结构示意图。请参照图5,本发明第四实施例中的基于webkit内核浏览器的文件上传装置40包括:
[0045]监测模块41,用于利用webkit内核浏览器中的UIWebView控件监测页面中与上传文件相关的触发按钮所链接的url请求。
[0046]判断执行模块42,用于判断UIWebView控件所监测到的url请求是否包含约定的协议开头,如果判断结果为是,接收并上传文件;否则,不进行文件上传。
[0047]于本实施例中,判断执行模块42进一步包括:
[0048]接收模块421:用于接收上传文件的请求。
[0049]于本实施例中,与上传文件相关的触发按钮所链接的url请求例如为:http://wbupload://somehost/somepath?somequery&cookiejs=funcl&successjs=func2&positionjs=func3,其中 http://wbupload:为约定的协议开头;somehost/somepath?somequery&为与文件上传相关的 post 请求的 url ;http: //wbupload: //somehost/somepath?somequery&cookie js=funcl&success js=func2&positionjs=func3 为固定格式,只是 funcl、func2&func3(js函数名,且不带括号对)具体名字视服务器下发。
[0050]于本实施例中,所述接收模块421包括第一调用模块4211,用于利用WWebView控件调用相关js函数获得发送上传请求用到的cookie值。
[0051]框弹出模块422:用于生成并弹出文件选择框。
[0052]于本实施例中,所述框弹出模块422包括第二调用模块4221,用于利用UIWebView控件调用相关js函数计算所述文件选择框应指向的位置。
[0053]判断执行子模块423:用于判断是否选择了待上传的文件,如果选择了待上传的文件则开始上传所选择的文件。
[0054]展示模块424:用于展示上传文件后的页面。
[0055]于本实施例中,展示模块424包括第三调用模块4241,用于利用WWebView控件调用相关js函数显示所述上传文件后的页面。
[0056]本实施例中的基于webkit内核浏览器的文件上传装置通过检测模块监测url请求,并通过判断执行模块判断该请求是否包含约定的协议开头,如果判断结果为是,接收并上传文件;否则,不进行文件上传,解决了传统的iOS装置的webkit浏览器无法上传文件的问题,方便用户上传文件。
[0057]需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。[0058]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0059]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0060]以上所述, 仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
【权利要求】
1.一种基于webkit内核浏览器的文件上传方法,其特征在于,所述文件上传方法包括:
利用webkit内核浏览器中的UIWebView控件监测页面中与上传文件相关的触发按钮所链接的urI请求;
判断UIWebView控件所监测到的url请求是否包含约定的协议开头,如果判断结果为是,接收并上传文件;否则,不进行文件上传。
2.如权利要求1所述的文件上传方法,其特征在于,于所述利用webkit内核浏览器中的UIWebView控件监测页面中与上传文件相关的触发按钮所链接的url请求前进一步包括:
设置所述约定的协议开头。
3.如权利要求1所述的文件上传方法,其特征在于,所述接收并上传文件的步骤包括:
接收上传文件的请求;
生成并弹出文件选择框;
判断是否选择了待上传的文件,如果选择了待上传的文件则开始上传所选择的文件;
展示上传文件后的页面。
4.如权利要求3所述的文件上传方法,其特征在于,所述接收上传文件的请求的步骤包括:
利用UIWebView控件调用相关js函数获得发送请求用到的cookie值。
5.如权利要求3所述的文件上传方法,其特征在于,所述生成并弹出文件选择框的步骤包括:
利用UIWebView控件调用相关js函数计算所述文件选择框应指向的位置。
6.如权利要求3所述的文件上传方法,其特征在于,所述展示上传文件后的页面的步骤包括:
利用UIWebView控件调用相关js函数显示所述上传文件后的页面。
7.一种基于webkit内核浏览器的文件上传装置,其特征在于,所述文件上传装置包括:
监测模块,用于利用webkit内核浏览器中的nWebView控件监测页面中与上传文件相关的触发按钮所链接的url请求;
判断执行模块,用于判断UIWebView控件所监测到的url请求是否包含约定的协议开头,如果判断结果为是,接收并上传文件;否则,不进行文件上传。
8.如权利要求7所述的文件上传装置,其特征在于,所述文件上传装置进一步包括:
设置模块,用于设置所述约定的协议开头。
9.如权利要求7所述的文件上传装置,其特征在于,所述判断执行模块包括:
接收模块,用于接收上传文件的请求;
框弹出模块,用于生成并弹出文件选择框;
判断执行子模块,用于判断是否选择了待上传的文件,如果选择了待上传的文件则开始上传所选择的文件;
展示模块,用于展示上传文件后的页面。
10.如权利要求9所述的文件上传装置,其特征在于,所述接收模块包括:第一调用模块,用于利用UIWebView控件调用相关js函数获得发送上传请求用到的cookie 值。
11.如权利要求9所述的文件上传装置,其特征在于,所述框弹出模块包括:
第二调用模块,用于利用UIWebView控件调用相关js函数计算所述文件选择框应指向的位置。
12.如权利要求9所述的文件上传装置,其特征在于,所述展示模块包括:
第三调用模块,用于利用UIWebView控件调用相关js函数显示所述上传文件后的页面。
【文档编号】H04L29/08GKSQ
【公开日】日
申请日期:日
优先权日:日
【发明者】曹涛, 侯杰, 豆宁军, 何明, 吕旭辉
申请人:腾讯科技(深圳)有限公司

我要回帖

更多关于 webkit内核浏览器控件 的文章

 

随机推荐