一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

应用程序内访问网页的方法及其装置与流程

2022-07-15 22:42:43 来源:中国专利 TAG:


1.本发明涉及互联网技术领域,尤其涉及一种应用程序内访问网页的方法、装置、封装浏览器的内核功能的工具包、存储介质以及计算机设备。


背景技术:

2.目前pc应用市场上的c/s架构客户端,如遇到网页访问的场景时,一种方案是直接启动操作系统的默认浏览器跳出应用本身进行访问,一种方案是在应用内部调用webview组件进行访问。两种方案各有利弊。直接启动操作系统默认浏览器的方案的优点是开发简单;缺点是浏览器配置很可能影响业务正常访问,用户体验效果差,应用中业务数据无法传递给浏览器。而在应用内部调用webview组件进行网页的访问的优点是用户体验略好,缺点是开发略有难度,浏览器配置影响业务正常访问,应用中业务数据无法传递给webview。现有的大多数企业开发应用时都会选择webview组件方法来实现应用内网页访问。
3.在办公场景中,pc是目前最普遍的生产力工具,人们通过台式电脑、笔记本电脑、一体机等方式完成绝大多数工作内容。随着本地原生应用与网页内容应用的组合实现方案在桌面应用软件中被应用的越来越多,在应用中使用嵌入网页和控制网页成为越来越普遍的诉求,但是在该方案的落地过程中,应用开发商发现,单纯使用一个原生的webview访问网页并不能满足他们的业务需求,例如跨平台(windows、mac、linux、信创)、系统或设备交互、多内核渲染(blink、ie6~ie11)、安全防护(用户行为、访问控制、页面水印保护、国密通信)等等,作为一个应用开发商去解决基于网页浏览器所衍生的各类问题对技术要求是比较高的,并且需要时间和经验沉淀,更重要的是,从投入产出比的角度来看非常不划算。
4.综上所述,现有技术在实际使用上显然存在不便与缺陷,所以有必要加以改进。


技术实现要素:

5.针对上述的缺陷,本发明的目的在于提供一种应用程序内访问网页的方法、装置、封装浏览器的内核功能的工具包、存储介质以及计算机设备,实现了在应用内显示网页时,获得浏览器渲染网页的功能,满足应用开发商的业务需求。
6.为了实现上述目的,本发明提供了一种应用程序内访问网页的方法,包括:
7.获取封装浏览器的内核功能的工具包;
8.调用所述工具包的所述内核功能,并根据所述内核功能渲染所述网页;
9.将渲染后的所述网页在所述应用程序内进行显示。
10.根据所述的应用程序内访问网页的方法,所述工具包包括接口文档以及用于实现所述浏览器的相应的内核功能的文件;
11.所述用于实现所述浏览器的相应的内核功能的文件包括动态链接库;
12.所述接口文档包括将所述相应的内核功能与所述动态链接库进行映射的映射关系表;
13.各个所述动态链接库导出相应的导出函数。
14.根据所述的应用程序内访问网页的方法,所述调用所述工具包的所述内核功能,并根据所述内核功能渲染所述网页包括:
15.通过所述应用程序创建宿主进程,所述宿主进程根据所述映射关系表调用相应的所述导出函数;以及
16.通过所述应用程序根据所述宿主进程创建子进程,所述子进程的进程名与所述宿主进程的进程名相同,并且所述子进程以命令行参数结尾;
17.所述宿主进程与所述子进程进行数据传递;
18.通过所述子进程调用所述相应的导出函数并根据所述数据对所述网页进行渲染。
19.根据所述的应用程序内访问网页的方法,所述浏览器的模式为c/s模式。
20.根据所述的应用程序内访问网页的方法,所述宿主进程与所述子进程进行数据传递包括:
21.通过所述应用程序创建数据通道接口,所述数据通道接口为浏览器窗口外壳;
22.所述子进程调用所述数据通道接口将所述子进程中的全局事件发送至所述宿主进程;以及
23.所述子进程调用所述数据通道接口获取所述宿主进程发送的全局的配置参数。
24.根据所述的应用程序内访问网页的方法,所述用于实现所述浏览器的相应的内核功能的文件包括可执行程序;所述接口文档中包括所述可执行程序的参数的参数说明表;
25.所述调用所述工具包的所述内核功能,并根据所述内核功能渲染所述网页包括:
26.在所述应用程序中调用所述工具包的可执行程序,并根据所述参数说明表向所述可执行程序的参数传入相应的参数值;
27.所述应用程序调用所述可执行程序后,所述应用程序与所述可执行程序各自独立运行;
28.通过所述可执行程序根据所述参数值渲染所述网页。
29.为了实现上述目的,本发明还提供了一种应用程序内访问网页的装置,包括:
30.工具包获取模块,用于获取封装浏览器的内核功能的工具包;
31.调用模块,用于调用所述工具包的所述内核功能,并根据所述内核功能渲染所述网页;
32.显示模块,用于将渲染后的所述网页在所述应用程序内进行显示。
33.为了实现上述目的,本发明还提供了一种适用于上述任一项所述的应用程序内访问网页的方法的封装浏览器的内核功能的工具包。
34.为了实现上述目的,本发明还提供了一种存储介质,用于存储一种用于执行上述中任意一种应用程序内访问网页的方法的计算机程序。
35.为了实现上述目的,本发明还提供了一种计算机设备,包括存储介质、处理器以及存储在所述存储介质上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的应用程序内访问网页的方法。
36.本发明通过获取封装浏览器的内核功能的工具包;根据业务需求调用工具包的内核功能,调用工具包的内核功能的功能时可以传递数据,例如传递需要访问的网页的url,根据所述内核功能渲染所述网页,从而使得被渲染的网页满足应用开发商的需求;将渲染后的所述网页在所述应用程序内进行显示,网页在应用程序内显示可以提升用户的体验。
由此,本发明实现了在应用内显示网页时,获得浏览器渲染网页的功能,满足应用开发商的业务需求。
附图说明
37.图1是本发明优选实施例的应用程序内访问网页的方法的流程图;
38.图2是本发明优选实施例的应用程序内访问网页的装置的示意图;
39.图3是本发明优选实施例的应用程序内访问网页的装置的示意图;
40.图4是本发明提供的计算机设备的结构示意图。
具体实施方式
41.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
42.需要说明的,本说明书中针对“一个实施例”、“实施例”、“示例实施例”等的引用,指的是描述的该实施例可包括特定的特征、结构或特性,但是不是每个实施例必须包含这些特定特征、结构或特性。此外,这样的表述并非指的是同一个实施例。进一步,在结合实施例描述特定的特征、结构或特性时,不管有没有明确的描述,已经表明将这样的特征、结构或特性结合到其它实施例中是在本领域技术人员的知识范围内的。
43.此外,在说明书及后续的权利要求当中使用了某些词汇来指称特定组件或部件,所属领域中具有通常知识者应可理解,制造商可以用不同的名词或术语来称呼同一个组件或部件。本说明书及后续的权利要求并不以名称的差异来作为区分组件或部件的方式,而是以组件或部件在功能上的差异来作为区分的准则。在通篇说明书及后续的权利要求书中所提及的“包括”和“包含”为一开放式的用语,故应解释成“包含但不限定于”。以外,“连接”一词在此系包含任何直接及间接的电性连接手段。间接的电性连接手段包括通过其它装置进行连接。
44.参见图1,在本发明的第一实施例中提供了一种应用程序内访问网页的方法,包括:
45.步骤s101,获取封装浏览器的内核功能的工具包;
46.步骤s102,调用所述工具包的所述内核功能,并根据所述内核功能渲染所述网页;
47.步骤s103,将渲染后的所述网页在所述应用程序内进行显示。
48.现有技术中,对于市场占有率高的应用开发商而言,要求将所有的业务都在本身的应用程序范围之内完成业务互通和交互,即生态闭环。但原生的webview控件是无法满足其上述要求的。虽然应用开发商可以通过使用原生的webview(网页视图)控件在应用程序内访问网页,但是应用程序(例如qq、微信)由于无法将业务数据传递至webview控件,而且webview控件的功能相对浏览器内核的功能较弱,由此导致webview控件并不能满足应用开发商的业务需求。在本发明的实施例中,可以通过在应用程序中调用工具包中的内核功能实现对网页进行渲染,该工具包即sdk(softwaredevelopmentkit)封装了浏览器的内核功能,可选的,该工具包sdk是基于chromium内核进行构建的。当应用程序调用该工具包的内核功能渲染网页时可以实现浏览器对网页进行渲染时的功能效果。例如工具包还可以封装
了设置代理服务器的功能以供应用程序调用,代理服务器是介于浏览器和web服务器之间的一台服务器,当应用程序调用工具包中相应的功能设置了代理服务器后,用户访问网页时,向代理服务器发出请求,由于代理服务器具有缓冲功能,若所请求的数据在代理服务器上已经存在而且是最新的,那么就不需要重新从web服务器取数据,由此提高浏览速度和效率。应用程序在调用工具包中的内核功能时,应用程序还可以在调用的过程中将应用程序中的业务数据进行传递。例如,应用程序调用工具包的渲染功能时可以传递需要访问的网页的url(统一资源定位符),从而实现满足应用开发商的业务需求。
49.在本发明的一个实施方式中,所述工具包包括接口文档以及用于实现所述浏览器的相应的内核功能的文件;
50.所述用于实现所述浏览器的相应的内核功能的文件包括动态链接库;
51.所述接口文档包括将所述相应的内核功能与所述动态链接库进行映射的映射关系表;
52.各个所述动态链接库导出相应的导出函数。
53.在该实施例中,每一个动态链接库中都封装了相应的内核功能,动态链接库导出了相应的导出函数以供外部应用程序调用。动态链接库在windows系统下是dll(dynamic link library)文件,在linux系统下是so文件。该工具包提供导出函数给应用程序调用,相当于共享了浏览器的内核。应用程序可以通过查询接口文档获取该动态链接库对应的内核功能,从而根据需要调用相应的导出函数实现相应的功能。即应用程序可以通过相应的接口文档对该工具包的内部进行各种高级功能进行调用,例如对页面水印保护、页面禁止复制、自定义ua(user agent)、与服务器通过国密ssl协议进行加密通信、代理服务器设置、cookies操作、网页缩放等功能进行调用。应用程序可以调用工具包的渲染功能,例如,工具包sdk基于chromium内核进行构建时,实现页面渲染功能的dll文件chrome_child.dll导出了导出函数chromeshell以供外部的应用程序调用,chromeshell函数原型示例如下:
54.class externalshellapp;
55.typedef int(*chromeshell)(hinstance,externalshellapp*);
56.hmodulehdll=::loadlibraryexw(get360sefilepath(l"chrome.dll").c_str(),null,load_with-_altered_search_path);
57.if(hdll)
58.{
59.chromeshell chrome_main=reinterpret_cast《chromeshell》(::getprocaddress(hdll,"chromeshell"));
60.if(!chrome_main)
61.{
62.return 0;
63.}
64.chrome_main(hinstance,&g_app);
65.}
66.在本发明的一个实施方式中,步骤s102包括:
67.通过所述应用程序创建宿主进程,所述宿主进程根据所述映射关系表调用相应的
所述导出函数;以及
68.通过所述应用程序根据所述宿主进程创建子进程,所述子进程的进程名与所述宿主进程的进程名相同,并且所述子进程以命令行参数结尾;
69.所述宿主进程与所述子进程进行数据传递;
70.通过所述子进程调用所述相应的导出函数并根据所述数据对所述网页进行渲染。
71.在该实施例中,应用程序调用相应的导出函数创建宿主进程,即应用程序将导出函数写入到应用程序的宿主进程的代码中,应用程序作为宿主程序启动后除了生成自己的宿主进程外,还会生成一个与宿主进程相同的子进程,为了区分宿主进程和子进程,将子进程以命令行参数进行结尾,该命令行参数是工具包中的参数。子进程用于运行相应的导出函数的代码实现相应的内核功能。之后可以让宿主进程和子进程进行数据互通和接口调用,使得应用程序与工具包之间数据深深交互。本实施例中调用工具包的内核功能的方式相当于将工具包成为了应用程序的一个模块,从而使得调用工具包更加的便捷和快速。假设子进程以工具包中的
‑‑
type参数结尾的,子进程通过c 编程语言调用导出函数chromeshell的代码示例如下:
72.if(lpcmdline&&strstr(lpcmdline,l"
‑‑
type"))
73.{
74.hmodule hdll=::loadlibraryexw(get360sefilepath(l"chrome_child.dll").c_str(),null,load_with_altered_search_path);
75.if(hdll)
76.{
77.chromeshell chrome_main=
78.reinterpret_cast《chromeshell》(::getprocaddress(hdll,"chromeshell"));
79.if(!chrome_main)
80.{
81.return 0;
82.}
83.chrome_main(hinstance,&g_app);
84.return 0;
85.}
86.}
87.在本发明的一个实施方式中,所述浏览器的模式为c/s模式。
88.在该实施例中,浏览器的模式为c/s(client-server,客户机-服务器)模式,即在安装应用程序的平台中还安装了浏览器。使得可以更加的便捷和快速的调用工具包实现浏览器内核的功能。
89.在本发明的一个实施方式中,所述宿主进程与所述子进程进行数据传递包括:
90.通过所述应用程序创建数据通道接口,所述数据通道接口为浏览器窗口外壳;
91.所述子进程调用所述数据通道接口将所述子进程中的全局事件发送至所述宿主进程;以及
92.所述子进程调用所述数据通道接口获取所述宿主进程发送的全局的配置参数。
93.在该实施例中,为了实现宿主进程与子进程的数据交互,应用程序创建了数据通道接口,数据通道接口可以包括多个接口,通过调用该接口,子进程可以从宿主进程获取全局的配置参数,如获取用户数据相关的目录,获取切核的策略配置等。子进程也可以通过这个接口将内部的全局事件通知给宿主进程。应用程序创建数据通道接口externalshellapp,在应用程序中实现该数据通道接口externalshellapp的代码示例如下:
94.class chromeapp:public externalshellapp
95.{
96.public:chromeapp();
97.virtual int getbrowserflag(uint uflag);
98.virtual wchar_t*getuserdata();
99.virtual char*gethome();
100.virtual wchar_t*getcomponents();
101.virtual void chromeinitfinish();
102.virtual void willprocessevent(hwnd hwnd,uint umsg,wparam wp,lparam lp);
103.virtual void didprocessevent(hwnd hwnd,uint umsg,wparam wp,lparam lp);
104.virtual void setshellapp(shellapp*pshellapp)
105.{
106.m_sapp=pshellapp;
107.}
108.void createbrowser(shellwebbrowserevent*browser_event,
109.hwnd hwnd,wchar_t*url,bool transparent,bool child);
110.void shellnotify(int id,void*pn);
111.};
112.在本发明的一个实施方式中,所述用于实现所述浏览器的相应的内核功能的文件包括可执行程序;所述接口文档中包括所述可执行程序的参数的参数说明表;
113.步骤s102包括:
114.在所述应用程序中调用所述工具包的可执行程序,并根据所述参数说明表向所述可执行程序的参数传入相应的参数值;
115.所述应用程序调用所述可执行程序后,所述应用程序与所述可执行程序各自独立运行;
116.通过所述可执行程序根据所述参数值渲染所述网页。
117.在该实施例中,针对应用程序与工具包无交互的情况,该工具包提供命令行参数供应用程序调用,应用程序可以通过调用可执行程序的形式使用工具包。具体的,只需在应用程序中按需调用可执行程序(windows操作系统的可执行程序是.exe扩展名,linux系统的可执行程序是elf文件),并根据参数说明表向该可执行程序传递相应的参数即可快速的使用该工具包的内核功能。采用可执行程序传参数方式使用工具包,可以将使用工具包的
方式变得更加简单高效,应用程序调用该可执行程序后,应用程序与可执行程序将是两个独立的进程,相互之间基本没有交互,只在应用程序调用该可执行程序的时候将参数传入即可。例如可执行程序为core.exe程序,使用的代码示例如下:
118.//使用的地方
119.::winexec("f:\\360browsercoresdk\\browser_core_sdk\\browsercore\\core\\core.exe
‑‑
shell-exe-mult-window
‑‑
shell-exe-open_url=https://www.sina.com.cn/
‑‑
user-data-dir=f:\test
‑‑
window-position=50,60
‑‑
window-size=900,800",sw_showdefault);
120.应用程序在程序中调用core.exe需要传递一些参数,上述代码中使用的参数前添加了
“‑‑”
英文符号,例如使用shell-exe-mult-window参数需要传入
‑‑
shell-exe-mult-window,例如在使用用于传递需要打开的网页的url的参数“shell-exe-open_url”时加上
“‑‑”
英文符号为
“‑‑
shell-exe-open_url”。参数说明表举例见下表1:
[0121][0122]
表1
[0123]
在本发明的一个实施方式中,所述将渲染后的所述网页在所述应用程序内进行显示包括:
[0124]
调用webview控件,通过所述webview控件将所述网页在所述应用程序内显示。
[0125]
在该实施例中,应用程序调用工具包实现浏览器内核的功能渲染网页后,可以将渲染后的网页通过webview控件将所述网页在所述应用程序内显示。
[0126]
参见图2~图3,在本发明的第二实施例中提供了应用程序内访问网页的装置100,包括:
[0127]
工具包获取模块10,用于获取封装浏览器的内核功能的工具包;
[0128]
调用模块20,用于调用工具包的内核功能,并根据内核功能渲染网页;
[0129]
显示模块30,用于将渲染后的网页在应用程序内进行显示。
[0130]
在本发明的一个实施方式中,工具包包括接口文档以及用于实现浏览器的相应的内核功能的文件;
[0131]
用于实现浏览器的相应的内核功能的文件包括动态链接库;
[0132]
接口文档包括将相应的内核功能与动态链接库进行映射的映射关系表;
[0133]
各个动态链接库导出相应的导出函数。
[0134]
在本发明的一个实施方式中,调用模块20包括:
[0135]
宿主进程创建子模块21,用于通过应用程序创建宿主进程,宿主进程根据映射关系表调用相应的导出函数;以及
[0136]
子进程创建子模块22,用于通过应用程序根据宿主进程创建子进程,子进程的进程名与宿主进程的进程名相同,并且子进程以命令行参数结尾;
[0137]
数据传递子模块23,用于宿主进程与子进程进行数据传递;
[0138]
第一调用子模块24,用于通过子进程调用相应的导出函数并根据数据对网页进行
渲染。
[0139]
在本发明的一个实施方式中,浏览器的模式为c/s模式。
[0140]
在本发明的一个实施方式中,数据传递子模块23具体用于通过应用程序创建数据通道接口,数据通道接口为浏览器窗口外壳;子进程调用数据通道接口将子进程中的全局事件发送至宿主进程;以及子进程调用数据通道接口获取宿主进程发送的全局的配置参数。
[0141]
在本发明的一个实施方式中,用于实现浏览器的相应的内核功能的文件包括可执行程序;接口文档中包括可执行程序的参数的参数说明表;
[0142]
调用模块20包括第二调用子模块25,第二调用子模块25具体用于在应用程序中调用工具包的可执行程序,并根据参数说明表向可执行程序的参数传入相应的参数值;应用程序调用可执行程序后,应用程序与可执行程序各自独立运行;通过可执行程序根据参数值渲染网页。
[0143]
在本发明的一个实施方式中,显示模块30具体用于调用webview控件,通过webview控件将网页在应用程序内显示。
[0144]
在本发明的一个实施方式中,该工具包sdk基于chromium内核进行构建。
[0145]
需要说明的是,本发明实施例所提供的的应用程序内访问网页的装置100,其具体实现及产生的技术效果和前述方法实施例相同,为简要描述,装置100实施例部分未提及之处,可参考前述方法实施例中相应内容。
[0146]
在本发明的第三实施例中提供了一种适用于上述任一项所述的应用程序内访问网页的方法的封装浏览器的内核功能的工具包。可选的,该工具包基于chromium内核进行构建
[0147]
在该实施例中,该工具包提供了用于实现所述浏览器的相应的内核功能的文件包括动态链接库以及可执行程序。外部的应用程序(例如微信、qq等)可以通过创建宿主进程以及子进程的方式调用工具包的动态链接库的导出函数实现相应的功能,宿主进程与子进程可以进行数据传递,使得数据深深交互。而在应用程序与工具包基本无交互的情况下,可以调用工具包提供的可执行程序,应用程序通过向工具包的可执行程序的参数传递参数值实现相应的功能,虽然数据交互相对较浅,但是可以简单高效的使用工具包所提供的的内核功能。
[0148]
在本发明的一个实施方式中,所述工具包包括接口文档以及用于实现所述浏览器的相应的内核功能的文件;
[0149]
用于实现所述浏览器的相应的内核功能的文件包括动态链接库;
[0150]
接口文档包括将所述相应的内核功能与所述动态链接库进行映射的映射关系表;
[0151]
各个所述动态链接库导出相应的导出函数。
[0152]
在该实施例中,每一个动态链接库中都封装了相应的内核功能,动态链接库在windows系统下是dll(dynamic link library)文件,在linux系统下是so文件。动态链接库导出了相应的导出函数以供外部应用程序调用。该工具包提供导出函数给应用程序调用,相当于共享了浏览器的内核。应用程序可以通过查询接口文档获取该动态链接库对应的内核功能,从而根据需要调用相应的导出函数实现相应的功能。即应用程序可以通过相应的接口文档对该工具包的内部进行各种高级功能进行调用,例如对页面水印保护、页面禁止
复制、自定义ua(user agent)、与服务器通过国密ssl协议进行加密通信、代理服务器设置、cookies操作、网页缩放等功能进行调用。例如,应用程序可以调用工具包的渲染功能。假设实现页面渲染功能的dll文件chrome_child.dll导出了导出函数chromeshell,chromeshell函数原型示例如下:
[0153]
class externalshellapp;
[0154]
typedef int(*chromeshell)(hinstance,externalshellapp*);
[0155]
hmodule hdll=::loadlibraryexw(get360sefilepath(l"chrome.dll").c_str(),null,load_with-_altered_search_path);
[0156]
if(hdll)
[0157]
{
[0158]
chromeshell chrome_main=reinterpret_cast《chromeshell》(::getprocaddress(hdll,"chromeshell"));
[0159]
if(!chrome_main)
[0160]
{
[0161]
return 0;
[0162]
}
[0163]
chrome_main(hinstance,&g_app);
[0164]
}
[0165]
在本发明的一个实施方式中,所述用于实现所述浏览器的相应的内核功能的文件包括可执行程序;所述接口文档中包括所述可执行程序的参数的参数说明表。
[0166]
在该实施例中,针对应用程序与工具包无交互的情况,该工具包提供命令行参数供应用程序调用,应用程序可以通过调用可执行程序的形式使用工具包。具体的,在应用程序中按需调用可执行程序(windows操作系统的可执行程序是.exe扩展名,linux系统的可执行程序是elf文件),并根据参数说明表向该可执行程序传递相应的参数即可快速的使用该工具包的内核功能。采用可执行程序传参数方式使用工具包,可以将使用工具包的方式变得更加简单高效,应用程序调用该可执行程序后,应用程序与可执行程序将是两个独立的进程,相互之间没有交互,只在应用程序调用该可执行程序的时候将参数传入即可。例如可执行程序为core.exe程序,使用的代码示例如下:
[0167]
//使用的地方
[0168]
::winexec("f:\\360browsercoresdk\\browser_core_sdk\\browsercore\\core\\core.exe
‑‑
shell-exe-mult-window
‑‑
shell-exe-open_url=https://www.sina.com.cn/
‑‑
user-data-dir=f:\test
‑‑
window-position=50,60
‑‑
window-size=900,800",sw_showdefault);
[0169]
应用程序在程序中调用core.exe需要传递一些参数,上述代码中使用的参数前添加了
“‑‑”
英文符号,例如使用shell-exe-mult-window参数需要传入
‑‑
shell-exe-multwindow,参数说明表举例见下表2:
[0170][0171]
表2
[0172]
本发明还提供一种存储介质,用于存储一种用于执行上述任意一种应用程序内访问网页的方法的计算机程序。例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本技术的方法和/或技术方案。而调用本技术的方法的程序指令,可能被存储在固定的或可移动的存储介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输和/或被存储在根据程序指令运行的计算机设备的存储介质中。在此,根据本技术的一个实施例中,包括一个如图4所示的计算机设备400,所述计算机设备400优选包括用于存储计算机程序的存储介质200和用于执行计算机程序的处理器300,其中,当该计算机程序被该处理器300执行时,触发该计算机设备400执行基于前述多个实施例中的方法和/或技术方案。
[0173]
需要注意的是,本技术可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(asic)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本技术的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本技术的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本技术的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
[0174]
根据本发明的方法可以作为计算机实现方法在计算机上实现、或者在专用硬件中实现、或以两者的组合的方式实现。用于根据本发明的方法的可执行代码或其部分可以存储在计算机程序产品上。计算机程序产品的示例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,计算机程序产品包括存储在计算机可读介质上以便当所述程序产品在计算机上执行时执行根据本发明的方法的非临时程序代码部件。
[0175]
在优选实施例中,计算机程序包括适合于当计算机程序在计算机上运行时执行根据本发明的方法的所有步骤的计算机程序代码部件。优选地,在计算机可读介质上体现计算机程序。
[0176]
综上所述,本发明通过获取封装浏览器的内核功能的工具包;根据业务需求调用工具包的内核功能,调用工具包的内核功能的功能时可以传递数据,例如传递需要访问的网页的url,根据所述内核功能渲染所述网页,从而使得被渲染的网页满足应用开发商的需求;将渲染后的所述网页在所述应用程序内进行显示,网页在应用程序内显示可以提升用户的体验。由此,本发明实现了在应用内显示网页时,获得浏览器渲染网页的功能,在开发搭建一套基于浏览器内核的工具包sdk之后,授权此sdk在此应用程序范围内的各项高级能力能够提升应用开发商的生态闭环覆盖,能够为调用工具包共享浏览器内核的应用开发商带来巨大收益,满足应用开发商的业务需求。
[0177]
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
[0178]
本发明还公开了:a1、一种应用程序内访问网页的方法,包括:
[0179]
获取封装浏览器的内核功能的工具包;
[0180]
调用所述工具包的所述内核功能,并根据所述内核功能渲染所述网页;
[0181]
将渲染后的所述网页在所述应用程序内进行显示。
[0182]
a2、根据a1所述的应用程序内访问网页的方法,所述工具包包括接口文档以及用于实现所述浏览器的相应的内核功能的文件;
[0183]
所述用于实现所述浏览器的相应的内核功能的文件包括动态链接库;
[0184]
所述接口文档包括将所述相应的内核功能与所述动态链接库进行映射的映射关系表;
[0185]
各个所述动态链接库导出相应的导出函数。
[0186]
a3、根据a2所述的应用程序内访问网页的方法,所述调用所述工具包的所述内核功能,并根据所述内核功能渲染所述网页包括:
[0187]
通过所述应用程序创建宿主进程,所述宿主进程根据所述映射关系表调用相应的所述导出函数;以及
[0188]
通过所述应用程序根据所述宿主进程创建子进程,所述子进程的进程名与所述宿主进程的进程名相同,并且所述子进程以命令行参数结尾;
[0189]
所述宿主进程与所述子进程进行数据传递;
[0190]
通过所述子进程调用所述相应的导出函数并根据所述数据对所述网页进行渲染。
[0191]
a4、根据a3所述的应用程序内访问网页的方法,所述浏览器的模式为c/s模式。
[0192]
a5、根据a3所述的应用程序内访问网页的方法,所述宿主进程与所述子进程进行数据传递包括:
[0193]
通过所述应用程序创建数据通道接口,所述数据通道接口为浏览器窗口外壳;
[0194]
所述子进程调用所述数据通道接口将所述子进程中的全局事件发送至所述宿主进程;以及
[0195]
所述子进程调用所述数据通道接口获取所述宿主进程发送的全局的配置参数。
[0196]
a6、根据a2所述的应用程序内访问网页的方法,所述用于实现所述浏览器的相应的内核功能的文件包括可执行程序;所述接口文档中包括所述可执行程序的参数的参数说明表;
[0197]
所述调用所述工具包的所述内核功能,并根据所述内核功能渲染所述网页包括:
[0198]
在所述应用程序中调用所述工具包的可执行程序,并根据所述参数说明表向所述可执行程序的参数传入相应的参数值;
[0199]
所述应用程序调用所述可执行程序后,所述应用程序与所述可执行程序各自独立运行;
[0200]
通过所述可执行程序根据所述参数值渲染所述网页。
[0201]
a7、根据a1所述的应用程序内访问网页的方法,所述将渲染后的所述网页在所述应用程序内进行显示包括:
[0202]
调用webview控件,通过所述webview控件将所述网页在所述应用程序内显示。
[0203]
a8、根据a1所述的应用程序内访问网页的方法,所述工具包基于chromium内核进行构建。
[0204]
b9、一种应用程序内访问网页的装置,包括:
[0205]
工具包获取模块,用于获取封装浏览器的内核功能的工具包;
[0206]
调用模块,用于调用所述工具包的所述内核功能,并根据所述内核功能渲染所述网页;
[0207]
显示模块,用于将渲染后的所述网页在所述应用程序内进行显示。
[0208]
b10、根据b9所述的应用程序内访问网页的装置,所述工具包包括接口文档以及用于实现所述浏览器的相应的内核功能的文件;
[0209]
所述用于实现所述浏览器的相应的内核功能的文件包括动态链接库;
[0210]
所述接口文档包括将所述相应的内核功能与所述动态链接库进行映射的映射关系表;
[0211]
各个所述动态链接库导出相应的导出函数。
[0212]
b11、根据b10所述的应用程序内访问网页的装置,所述调用模块包括:
[0213]
宿主进程创建子模块,用于通过所述应用程序创建宿主进程,所述宿主进程根据所述映射关系表调用相应的所述导出函数;以及
[0214]
子进程创建子模块,用于通过所述应用程序根据所述宿主进程创建子进程,所述子进程的进程名与所述宿主进程的进程名相同,并且所述子进程以命令行参数结尾;
[0215]
数据传递子模块,用于所述宿主进程与所述子进程进行数据传递;
[0216]
第一调用子模块,用于通过所述子进程调用所述相应的导出函数并根据所述数据对所述网页进行渲染。
[0217]
b12、根据b11所述的应用程序内访问网页的装置,所述浏览器的模式为c/s模式。
[0218]
b13、根据b11所述的应用程序内访问网页的装置,所述数据传递子模块具体用于通过所述应用程序创建数据通道接口,所述数据通道接口为浏览器窗口外壳;所述子进程调用所述数据通道接口将所述子进程中的全局事件发送至所述宿主进程;以及所述子进程调用所述数据通道接口获取所述宿主进程发送的全局的配置参数。
[0219]
b14、根据b10所述的应用程序内访问网页的装置,所述用于实现所述浏览器的相应的内核功能的文件包括可执行程序;所述接口文档中包括所述可执行程序的参数的参数说明表;
[0220]
所述调用模块包括第二调用子模块,所述第二调用子模块具体用于在所述应用程序中调用所述工具包的可执行程序,并根据所述参数说明表向所述可执行程序的参数传入相应的参数值;所述应用程序调用所述可执行程序后,所述应用程序与所述可执行程序各自独立运行;通过所述可执行程序根据所述参数值渲染所述网页。
[0221]
b15、根据b9所述的应用程序内访问网页的装置,所述显示模块具体用于调用webview控件,通过所述webview控件将所述网页在所述应用程序内显示。
[0222]
b16、根据b9所述的应用程序内访问网页的装置,所述工具包基于chromium内核进行构建。
[0223]
c17、一种适用于a1~a8任一项所述的应用程序内访问网页的方法的封装浏览器的内核功能的工具包。
[0224]
c18、根据c17所述的工具包,所述工具包包括接口文档以及用于实现所述浏览器的相应的内核功能的文件;
[0225]
所述用于实现所述浏览器的相应的内核功能的文件包括动态链接库;
[0226]
所述接口文档包括将所述相应的内核功能与所述动态链接库进行映射的映射关系表;
[0227]
各个所述动态链接库导出相应的导出函数。
[0228]
c19、根据c18所述的工具包,所述用于实现所述浏览器的相应的内核功能的文件包括可执行程序;所述接口文档中包括所述可执行程序的参数的参数说明表。
[0229]
c20、根据c17所述的工具包,所述工具包基于chromium内核进行构建。
[0230]
d21、一种存储介质,用于存储一种用于执行a1~a8中任意一种应用程序内访问网页的方法的计算机程序。
[0231]
e22、一种计算机设备,包括存储介质、处理器以及存储在所述存储介质上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现a1~a8任一项所述的应用程序内访问网页的方法。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献