CN102819451B - 一种浏览器插件调用方法及系统 - Google Patents
一种浏览器插件调用方法及系统 Download PDFInfo
- Publication number
- CN102819451B CN102819451B CN201110154271.9A CN201110154271A CN102819451B CN 102819451 B CN102819451 B CN 102819451B CN 201110154271 A CN201110154271 A CN 201110154271A CN 102819451 B CN102819451 B CN 102819451B
- Authority
- CN
- China
- Prior art keywords
- plug
- unit
- browser
- page
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种浏览器插件调用方法及系统,包括预先设置用于访问插件的URL地址;在接收到页面跳转通知时,确定出需要跳转的URL地址为用于访问插件的URL地址,不进行页面跳转,从URL中读取参数,使插件获得传入的数据。通过本发明调用插件的方法,通过app模拟通常页面调用插件的各个接口,实现了对插件的模拟,同时也实现了数据在插件和javascript脚本之间的输入输出,提供了第三方用户使用NPAPI技术的便利性,增加了灵活性,达到了一般应用要求。
Description
技术领域
本发明涉及插件技术,尤指一种iOS系统的浏览器插件调用方法及系统。
背景技术
网页往往需要调用插件的功能来实现更丰富的表现,更强大的功能,比如IE浏览器的ActiveX;又如firefox、safari、chrome等浏览器使用的网景插件应用程序编程接口(NPAPI,Netscape Plugin Application Programming Interface)的插件。在网页中经常看到的flash就是这种插件技术的一种表现。
iOS系统是美国苹果公司(Apple Inc.)用于移动设备(如iphone、ipad)的操作系统。iOS系统使用safari浏览器作为内置浏览器,目前,在safari浏览器上实现插件技术有NPAPI组件技术。NPAPI是一套用于webkit内核浏览器公开的、特定的接口,只要遵循这套接口编写出对应的模块文件,并将该模块文件放置到safari的插件目录下,就能实现safari装载该对应的模块,接着网页即可调用该插件。比如:苹果公司在移动设备中内置有QuickTime插件,QuickTime是苹果公司的播放器,通过这个组件,网页就能调用QuickTime进行音视频的播放;又比如:第三方开发的Safari下载管理(Safari Download Manager)插件,实现了safari的下载管理,等等。
现有插件技术的使用方式如图1所示,整个操作环境是在浏览器中进行的,浏览器在打开网页时,会有javascript脚本与插件,数据的交换就在插件与javascript脚本间进行。
现有iOS平台的NPAPI的缺点主要是,美国苹果公司对插件技术的封闭,第三方软件开发厂商是不得使用和修改的。目前,NPAPI技术所碰到的问题是:美国苹果公司不让插件出现在safari浏览器中,因此,对于第三方软件开发厂商来讲,图1中的插件模块是不存在的,这样,javascript脚本就无法找到数据交换的对象。而部分第三方软件开发厂商开发的iOS下的NPAPI插件,需要用户对iOS进行破解后才能使用,这样又会存在几个问题:
美国苹果公司禁止对iOS进行破解,因此,其不会对进行了iOS破解的设备提供维修保障,而且对iOS的破解是触犯知识产权保护法的;
iOS破解后会产生安全风险,并且容易使得系统不稳定。
综上所述,第三方用户在使用NPAPI技术非常受限制,缺乏灵活性,达不到一般应用要求。
发明内容
有鉴于此,本发明的主要目的在于提供一种浏览器插件调用方法及系统,能够提供第三方用户使用NPAPI技术的便利性,增加灵活性,达到一般应用要求。
为达到上述目的,本发明的技术方案是这样实现的:
一种浏览器插件调用方法,预先设置用于访问插件的URL地址;该方法还包括:
在接收到页面跳转通知时,确定出需要跳转的URL地址为用于访问插件的URL地址,不进行页面跳转,从URL中读取参数,使插件获得传入的数据。
在确定出需要跳转的URL地址不是用于访问插件的URL地址时,该方法还包括:进行正常页面跳转,结束本流程。
当所述插件需要反馈数据到页面时,该方法还包括:所述插件通过浏览器接口的方法,直接通过javascript脚本将数据注入到页面。
所述通过浏览器接口的方法,直接通过javascript脚本将数据注入到页面包括:
预先设置用于保存插件传出给页面的数据的javascript变量;
所述插件通过浏览器控件UIWebView的stringByEvaluatingJavaScriptFromString方法,将数据存储到该javascript变量中;
所述页面直接访问该javascript变量以获得数据。
所述插件是iOS的应用app程序。
一种浏览器插件调用系统,至少包括:插件、浏览器、页面,以及javascript脚本,其中,
Javascript脚本位于浏览器中,用于发起页面跳转通知;
插件,位于浏览器外并监视浏览器相关事件,用于接收页面准备跳转的通知,在确定出URL地址为用于访问插件的URL地址时,阻止页面跳转后,从URL中读取参数,使插件获得传入的数据。
所述插件,还用于通过浏览器控件的方法,将数据存储到预先设置的javascript变量;相应地,
所述javascript脚本,还用于直接访问该javascript变量以获得数据。
所述插件是iOS的应用app程序。
从上述本发明提供的技术方案可以看出,包括预先设置用于访问插件的URL地址;在接收到页面跳转通知时,确定出需要跳转的URL地址为用于访问插件的URL地址,不进行页面跳转,从URL中读取参数,使插件获得传入的数据。通过本发明调用插件的方法,通过app模拟通常页面调用插件的各个接口,实现了对插件的模拟,同时也实现了数据在插件和javascript脚本之间的输入输出,提供了第三方用户使用NPAPI技术的便利性,增加了灵活性,达到了一般应用要求。
附图说明
图1为现有插件技术的使用方式的示意图;
图2为本发明浏览器插件调用方法的流程图;
图3为本发明浏览器插件调用系统的组成结构示意图;
图4为本发明数据传入插件的实施例的流程示意图;
图5为本发明插件数据传出的实施例的示意图。
具体实施方式
图2为本发明插件调用方法的流程图,如图2所示,包括以下步骤:
步骤200:预先设置用于访问插件的URL地址。
本步骤中,预先设置的URL地址是一个唯一的标识,具体取什么值并不做限定,但需要保证是唯一的,这样,在后续处理页面跳转时,可以通过该URL地址识别出是针对插件本身的请求,与区别于其他正常的页面访问URL地址,从而采取相应的跳转方式。
步骤201:在接收到页面跳转通知时,确定URL地址是否为用于访问插件的URL地址,如果是,进入步骤202;否则进行现有的正常跳转并结束本流程。
对于页面数据传入到插件的情况,只是希望页面把数据传进来,并不希望页面发生跳转,因此,本步骤中,在检测到页面跳转通知中的URL地址与预先设置的用于访问插件的URL地址一致,则不需要进行浏览器跳转。
步骤202:不进行页面跳转,从URL中读取参数,使插件获得传入的数据。
本步骤中,从javascript代码中直接读取从页面传入插件的数据即可。
其中,插件可以是iOS的应用(app)程序。其中,app指iOS系统上的公开发行的软件程序,app程序其实是iOS的一个普通程序,用户可以从appstore(一个美国苹果公司的软件中心)下载安装。需要说明的是,这个app内嵌了浏览器,这样,浏览器中的信息交换就能被app所获取。需要说明的是,app内嵌浏览器是iOS开发下的通用行为,具体实现不属于本发明的保护范围,是本领域技术人员的惯用技术,比如很多windows程序内嵌一个浏览器用于展示广告页面,是很常见的,iOS系统下也是同样如此。
本发明方法还包括:当插件需要反馈数据到页面时,插件通过浏览器接口UIWebView的stringByEvaluatingJavaScriptFromString方法直接通过javascript脚本将数据注入到页面。具体来讲包括:预先设置用于保存插件传出给页面的数据的javascript变量,插件通过浏览器控件UIWebView的stringByEvaluatingJavaScriptFromString方法,将数据存储到该javascript变量中,这样,页面直接访问该javascript变量以获得数据,实现了插件数据输出到页面。其中,UIWebView是iOS系统下浏览器的对应接口,通过这个接口,可以操作浏览器访问网站的行为,操作页面数据;stringByEvaluatingJavaScriptFromString是UIWebView的一个函数接口,这个函数能实现运行页面里面的javascript语句,具体使用属于本领域技术人员的惯用技术手段,这里不再赘述。
图3为本发明插件调用系统的组成结构示意图,如图3所示,至少包括:插件、浏览器、页面,以及javascript脚本,其中,
Javascript脚本位于浏览器中,用于发起页面跳转通知;
插件,位于浏览器外并监视浏览器相关事件,用于接收页面准备跳转的通知,在确定出URL地址为用于访问插件的URL地址时,阻止页面跳转后,从URL中读取参数,使插件获得传入的数据。
插件,还用于通过浏览器控件的方法,将数据存储到预先设置的javascript变量;相应地,javascript脚本,还用于直接访问该javascript变量以获得数据。
图4为本发明数据传入插件的实施例的流程示意图,如图4所示,包括:
步骤400步骤401:页面需要传数据给插件,Javascript脚本封装数据到一个特定的URL中,并发起页面跳转通知。
步骤402:App本身检测到页面的跳转,分析出URL中的数据,阻止页面跳转。
步骤403:数据成功传入app,插件获得来自页面的数据。
下面结合实例来详细描述图4所示的流程:
假设某网页通过javascript将一个参数传给插件,该参数名字为时间(time),其值取为当前时间,数据定义为:time=20101202161616,其中的20101202161616表示2010年12月2日16时16分16秒。本实施例中,通过URL来传送该参数,通过javascript控制当前页面跳转到新的URL,javascript示例代码如表1所示:
表1
表1中,URL的地址内容为643248ff-f6c5-4ccd-9088-ab11ed68e6d2,是一个唯一的标识,具体取什么值不做限定,这里只是一个示例。这样应用程序(app)可以通过这个唯一的标识识别出是针对插件本身的请求。
表1中,问号后面的time=20101202161616是页面传给插件的具体数据。
App得到URL地址跳转的通知,通知的位置在app内嵌的浏览器对应的类:
UIViewController<UIWebViewDelegate>上面。
这个类有个接口shouldStartLoadWithRequest,通过该接口可以得到每次浏览器要跳转的地址,如表2所示代码示例:
表2
图5为本发明插件数据传出的实施例的示意图,如图5所示,当插件需要反馈数据到页面时,插件通过浏览器控件UIWebView的stringByEvaluatingJavaScriptFromString方法,直接通过javascript数据对象(可以通过定义的javascript变量来实现)将数据注入到页面,代码示例如表3所示:
表3
具体来讲是:定义一个javascript变量,插件将数据存储到该javascript变量中,页面直接访问这个javascript变量以获得数据,从而简单地实现了插件数据输出到页面。
通过本发明调用插件的方法,通过app模拟通常页面调用插件的各个接口,实现了对插件的模拟,同时也实现了数据在插件和javascript脚本之间的输入输出。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种浏览器插件调用方法,其特征在于,预先设置用于访问插件的URL地址;该方法还包括:
在接收到页面跳转通知时,确定出需要跳转的URL地址为用于访问插件的URL地址时,识别出所述需要跳转的URL地址是针对所述插件本身的请求,而不是正常的页面访问URL地址,不进行页面跳转,从URL中读取参数,使插件获得传入的数据;
所述插件为通过app模拟通常页面调用插件的各个接口模拟得到的插件。
2.根据权利要求1所述的浏览器插件调用方法,其特征在于,在确定出需要跳转的URL地址不是用于访问插件的URL地址时,该方法还包括:进行正常页面跳转,结束本流程。
3.根据权利要求1或2所述的浏览器插件调用方法,其特征在于,当所述插件需要反馈数据到页面时,该方法还包括:所述插件通过浏览器接口的方法,直接通过javascript脚本将数据注入到页面。
4.根据权利要求3所述的浏览器插件调用方法,其特征在于,所述通过浏览器接口的方法,直接通过javascript脚本将数据注入到页面包括:
预先设置用于保存插件传出给页面的数据的javascript变量;
所述插件通过浏览器控件UIWebView的stringByEvaluatingJavaScriptFromString方法,将数据存储到该javascript变量中;
所述页面直接访问该javascript变量以获得数据。
5.根据权利要求1所述的浏览器插件调度方法,其特征在于,所述插件是iOS的应用app程序。
6.一种浏览器插件调用系统,其特征在于,至少包括:插件、浏览器、页面,以及javascript脚本,其中,
Javascript脚本位于浏览器中,用于发起页面跳转通知;
插件,位于浏览器外并监视浏览器相关事件,用于接收页面准备跳转的通知,在确定出需要跳转的URL地址为用于访问插件的URL地址时,识别出所述需要跳转的URL地址是针对所述插件本身的请求,而不是正常的页面访问URL地址,不进行页面跳转,阻止页面跳转后,从URL中读取参数,使插件获得传入的数据;
所述插件为通过app模拟通常页面调用插件的各个接口模拟得到的插件。
7.根据权利要求6所述的浏览器插件调用系统,其特征在于,
所述插件,还用于通过浏览器控件的方法,将数据存储到预先设置的javascript变量;相应地,
所述javascript脚本,还用于直接访问该javascript变量以获得数据。
8.根据权利要求6或7所述的浏览器插件调用系统,其特征在于,所述插件是iOS的应用app程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110154271.9A CN102819451B (zh) | 2011-06-09 | 2011-06-09 | 一种浏览器插件调用方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110154271.9A CN102819451B (zh) | 2011-06-09 | 2011-06-09 | 一种浏览器插件调用方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102819451A CN102819451A (zh) | 2012-12-12 |
CN102819451B true CN102819451B (zh) | 2015-08-19 |
Family
ID=47303576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110154271.9A Active CN102819451B (zh) | 2011-06-09 | 2011-06-09 | 一种浏览器插件调用方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102819451B (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049320B (zh) * | 2012-12-17 | 2016-05-04 | 广州市动景计算机科技有限公司 | 在浏览器中启动外部应用程序的方法和装置 |
EP3296891A3 (en) * | 2012-12-18 | 2018-07-04 | Huawei Technologies Co., Ltd. | Web application interaction method, apparatus, and system |
CN103914284B (zh) * | 2012-12-31 | 2017-12-12 | 北京神州泰岳软件股份有限公司 | 移动嵌入式平台中内嵌浏览器网页实现方法和装置 |
CN103064738B (zh) * | 2013-01-15 | 2016-11-02 | 珠海金山办公软件有限公司 | Linux下本地应用程序窗体嵌入浏览器的方法及系统 |
CN104516890B (zh) * | 2013-09-27 | 2018-12-28 | 腾讯科技(深圳)有限公司 | 业务处理方法、装置及电子设备 |
CN104978176B (zh) | 2014-04-10 | 2019-03-08 | 腾讯科技(北京)有限公司 | 应用程序接口调用方法、装置及计算机可读存储介质 |
CN105262605B (zh) | 2014-07-17 | 2018-09-25 | 阿里巴巴集团控股有限公司 | 一种获取本地信息的方法、装置及系统 |
CN104391700A (zh) * | 2014-11-11 | 2015-03-04 | 百度在线网络技术(北京)有限公司 | 应用程序功能扩展方法和装置 |
CN105991410B (zh) * | 2015-02-12 | 2020-06-30 | 北京创新方舟科技有限公司 | 一种获取消息的方法和系统 |
CN104731949B (zh) * | 2015-03-31 | 2017-05-03 | 北京奇虎科技有限公司 | 识别网页跳转的方法和装置 |
CN104978199B (zh) * | 2015-07-10 | 2018-03-09 | 无锡天脉聚源传媒科技有限公司 | 一种用于多种浏览器的插件应用方法和装置 |
CN105183471A (zh) * | 2015-09-06 | 2015-12-23 | 浪潮软件股份有限公司 | 一种基于ios多uiviewcontroller提升hybrid应用体验的方法 |
CN106528657A (zh) * | 2016-10-19 | 2017-03-22 | 广东欧珀移动通信有限公司 | 浏览器跳转至应用程序的控制方法及装置 |
CN106897215A (zh) * | 2017-01-20 | 2017-06-27 | 华南理工大学 | 一种基于WebView网页加载性能及用户行为流数据采集的方法 |
CN107562548A (zh) * | 2017-08-04 | 2018-01-09 | 北京趣拿软件科技有限公司 | 传输数据的方法和装置 |
CN107526598B (zh) * | 2017-08-31 | 2020-10-16 | 武汉斗鱼网络科技有限公司 | 一种网络页面跳转控制方法及系统 |
CN110083352A (zh) * | 2019-03-20 | 2019-08-02 | 平安普惠企业管理有限公司 | Js代码注入方法、装置、计算机设备及存储介质 |
CN110062195A (zh) * | 2019-04-19 | 2019-07-26 | 视联动力信息技术股份有限公司 | 一种视频会议接入方法及系统 |
CN110188296B (zh) * | 2019-05-13 | 2021-07-13 | 北京百度网讯科技有限公司 | 应用程序内嵌页面处理方法、浏览器、设备和存储介质 |
CN110611713A (zh) * | 2019-09-17 | 2019-12-24 | 深圳市网心科技有限公司 | 一种数据下载方法、系统及电子设备和存储介质 |
CN111158784A (zh) * | 2019-12-30 | 2020-05-15 | 山东浪潮商用系统有限公司 | 一种基于谷歌浏览器加载ActiveX控件的解决方法 |
CN112069476B (zh) * | 2020-09-16 | 2022-07-12 | 杭州安恒信息技术股份有限公司 | 一种登录状态检测方法、装置、设备及可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101587495A (zh) * | 2009-07-08 | 2009-11-25 | 伍帝州 | 通过浏览器下载部署应用并提供应用入口的方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7269833B2 (en) * | 2001-12-12 | 2007-09-11 | Sun Microsystems, Inc. | Scriptable plug-in application programming interface |
-
2011
- 2011-06-09 CN CN201110154271.9A patent/CN102819451B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101587495A (zh) * | 2009-07-08 | 2009-11-25 | 伍帝州 | 通过浏览器下载部署应用并提供应用入口的方法及系统 |
Non-Patent Citations (1)
Title |
---|
iOS系统的Javascript与Objective-C互操作指南;Lee Bing;《http://blog.csdn.net/》;20110519 * |
Also Published As
Publication number | Publication date |
---|---|
CN102819451A (zh) | 2012-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102819451B (zh) | 一种浏览器插件调用方法及系统 | |
US8966446B1 (en) | Systems and methods of live experimentation on content provided by a web site | |
CN111414407A (zh) | 数据库的数据查询方法、装置、计算机设备及存储介质 | |
US20120317233A1 (en) | Mobile web app infrastructure | |
CN103064738B (zh) | Linux下本地应用程序窗体嵌入浏览器的方法及系统 | |
CN110046310B (zh) | 分析页面中的跳转链接的方法和装置 | |
CN104978213B (zh) | 实现应用安装包的链接获取方法和装置 | |
CN103744985A (zh) | 网页适配的方法和系统 | |
CN105718313A (zh) | 应用操作方法和装置 | |
CN105468240A (zh) | 一种多媒体内容展示方法及装置 | |
CN104539682A (zh) | 移动网页的调试方法、装置、移动终端、服务器以及系统 | |
CN104704468A (zh) | Web应用程序的跨系统安装 | |
CN110798445B (zh) | 公共网关接口测试方法、装置、计算机设备及存储介质 | |
US20160080918A1 (en) | Auditing of mobile applications | |
CN105573733A (zh) | 浏览器与web前端通信的方法、web前端及系统 | |
CN107704499A (zh) | 一种应用程序的页面跳转控制方法及装置 | |
CN104573486A (zh) | 漏洞检测方法和装置 | |
CN103246501A (zh) | 一种分享应用的方法以及客户端 | |
CN112818270A (zh) | 数据跨域传递方法、装置及计算机设备 | |
CN204721386U (zh) | 基于二维码实现绑定微信客户端的装置 | |
CN110674426A (zh) | 网页行为上报方法和装置 | |
US20180196724A1 (en) | Cloud servers and methods for handling dysfunctional cloud services | |
CN111651766B (zh) | 越权访问的测试方法及装置 | |
CN111078654B (zh) | 一种分享信息的方法与设备 | |
AU2013206622B2 (en) | Download management method and device based on Android browser |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent for invention or patent application | ||
CB02 | Change of applicant information |
Address after: 518057, Tencent Building, 8 hi tech park, Guangdong, Shenzhen Applicant after: Tenpay Payment Technology Co., Ltd. Address before: The South 518057 Guangdong city of Shenzhen province high tech Zone of Nanshan District City, a TCL building A block 8 layer Applicant before: Shenzhen Tenpay Technology Co., Ltd. |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: SHENZHEN TENPAY TECHNOLOGY CO., LTD. TO: TENPAY PAYMENT TECHNOLOGY CO., LTD. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |