CN110221830B - 一种在PC上加载WebView的方法及系统 - Google Patents
一种在PC上加载WebView的方法及系统 Download PDFInfo
- Publication number
- CN110221830B CN110221830B CN201910506598.4A CN201910506598A CN110221830B CN 110221830 B CN110221830 B CN 110221830B CN 201910506598 A CN201910506598 A CN 201910506598A CN 110221830 B CN110221830 B CN 110221830B
- Authority
- CN
- China
- Prior art keywords
- webview
- unity
- loading
- android
- ios
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开在PC上加载WebView的方法,方法包括以下步骤:S11:在Unity中内嵌H5页面并使用内嵌网页浏览器插件Embedded Browser显示H5页面;S12:判断需要部署的操作系统类型;S13:设置与操作系统类型对应的浏览器标签UA;S14:当UA设置为Android或者IOS时,通过UniWebView直接调用Android和IOS的Native API用以实现WebView加载内部页面;当UA设置为桌面系统时,调用封装好的接口unity和网页之间交互。为此,实现在PC上加载WebView的方法,同步支持PC端以及移动端,减少开发人员工作量,具体时效性高,部署效果确定效果。
Description
技术领域
本发明涉及软件开发技术领域,尤其涉及一种在PC上加载WebView的方法及系统。
背景技术
随着移动互联网的发展,尤其是移动平台游戏的发展。各游戏公司产品日益多样化,精品化,竞争也日趋白热化。这就要求游戏公司开发一款游戏时做到快速迭代,快速响应。
而移动平台目前主流使用的操作系统为苹果的IOS操作系统以及谷歌的Android操作系统。但是由于嵌入式处理器和桌面系统处理器如英特尔,AMD等中央处理器在性能上有着极大的差距,所以无论是IOS还是Android的开发人员仍然是在使用诸如Windows这样的桌面系统来进行开发。
这样,开发人员在享用桌面系统高性能的同时也会因为系统的差异性带来开发的不便。这种差异性体现在Windows操作系统和移动系统IOS以及Android操作系统调用Unity,以及Unity加载系统Web软件工具的方法的差异。这种差异会导致开发人员如果使用Windows操作系统的Unity加载Web工具的方式制作的网页会和移动操作系统部署后的效果有差异,并且部分代码无法重用,这就导致了工作量的增加以及对最终效果的不确定性的增大。这显然不符合快速迭代,快速响应的要求。如果直接使用IOS或者Android的对Unity下加载Web的方式,那么就必须在整个代码开发完成之后整体部署到移动端诸如手机或者平板才能看到效果,这种方法时效性依然较低。
发明内容
为了解决上述问题的一个或多个问题,本发明提供了一种在PC上加载WebView的方法及系统。
根据本发明的一个方面,提供一种在PC上加载WebView的方法,方法包括以下步骤:
S11:在Unity中内嵌H5页面并使用内嵌网页浏览器插件Embedded Browser编辑所述H5页面;
S12:判断需要部署的操作系统类型;
S13:设置与所述操作系统类型对应的浏览器标签UA;
S14:当UA设置为Android或者IOS时,通过UniWebView直接调用Android和IOS的Native API用以实现WebView加载内部页面;
当UA设置为Windows时,调用封装好的UniWebViewManager,用于跟Unity直接进行交互,所述UniWebViewManager与UniWebViewDialog进行交互,所述UniWebViewDialog用于管理具体网页并负责响应传输unity和网页之间的消息。
在一些实施方式中,UniWebViewManager和UniWebViewDialog之间为C/S架构。
在一些实施方式中,操作系统类型为Android、IOS或Windows操作系统。
在一些实施方式中,当所述UA设置为Android或者IOS时,所述UniWebView与Unity调用的方式为UrlScheme方式;
当所述UA设置为Windows时,所述UniWebViewManager与所述Unity的调用方式为暴露C#接口。
在一些实施方式中,unity和网页之间的消息包括键盘或鼠标事件。
根据本发明的另一个方面,提供一种在PC上加载WebView的系统,包括:内嵌浏览器模块,用于在Unity中内嵌H5页面并使用内嵌网页浏览器插件Embedded Browser编辑所述H5页面;
系统识别模块,用于判断需要部署的操作系统类型;
系统类型记录模块,用于设置与所述操作系统类型对应的浏览器标签UA;
UniWebView接口,用于实现WebView加载内部页面;
UniWebView,用于当UA设置为Android或者IOS时,通过UniWebView直接调用Android和IOS的Native API用以实现WebView加载内部页面;
PC模拟UniWebView模块,包括UniWebViewManager以及UniWebViewDialog,所述UniWebViewManager与UniWebViewDialog进行交互,所述UniWebViewDialog用于管理具体网页并负责响应传输unity和网页之间的消息。
在一些实施方式中,UniWebViewManager和UniWebViewDialog之间为C/S架构。
在一些实施方式中,当所述UA设置为Android或者IOS时,所述UniWebView与Unity调用的方式为UrlScheme方式;
当所述UA设置为Windows时,所述UniWebViewManager与所述Unity的调用方式为暴露C#接口。
根据本发明的另一个方面,提供一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如前述的一种在PC上加载WebView的方法。
根据本发明的另一个方面,提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如前述方法的步骤。
本发明的技术方案实现了在PC上加载WebView的方法,同步支持PC端以及移动端,使得开发完全一致,Web开发者不再需要去面对各个操作系统的Web软件工具去开发,而是拥有一种统一的接口,使得代码可重用,进而满足快速响应的要求并减少开发人员的工作量,具体时效性高,部署效果确定的有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明在PC上加载WebView的方法的一实施方式流程示意图;
图2是本发明在PC上加载WebView的系统的一实施方式结构示意图;
图3是本发明在PC上加载WebView的方法的终端设备的原理示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例如图1所示,提供一种在PC上加载WebView的方法,方法包括以下步骤:
S11:在Unity中内嵌H5页面并使用内嵌网页浏览器插件Embedded Browser显示所述H5页面。
S12:判断需要部署的操作系统类型。
S13:设置与所述操作系统类型对应的浏览器标签UA。
S14:当UA设置为Android或者IOS时,通过UniWebView直接调用Android和IOS的Native API用以实现WebView加载内部页面,即UniWebView或者IOS采用的加载方式为调用了Android原生的webview。
当UA设置为Windows时,调用封装好的UniWebViewManager,用于跟Unity直接进行交互,所述UniWebViewManager与UniWebViewDialog进行交互,所述UniWebViewDialog用于管理具体网页并负责响应传输Unity和网页之间的消息。
对于步骤S11,其中,Embedded Browser为内嵌的第三方插件,用于通过离线渲染方式渲染指定网页。
对于步骤S12,其中,操作系统类型为Android、IOS或Windows操作系统。
对于步骤S13,其中,不同的操作系统类型对应不同的浏览器标签UA。具体举例而言,PC版本在默认加载的时候UA的设置是PC的,所以为了达到直接预览android的效果,在Embedded Browser插件启动的时候进行UA的修改,修改为Android预览“Mozilla/5.0(Linux;Android 5.0;SM-G900P Build/LRX21T)AppleWebKit/537.36(KHTML,like Gecko)Chrome/69.0.3497.100Mobile Safari/537.36”。
对于步骤S14,PC版本封装了UniWebViewManager,用于跟Unity直接进行交互,同时负责维护UniWebViewDialog。而UniWebViewDialog类对应游戏中打开的每一个网页,管理具体网页并负责响应传输unity与网页之间的消息,如键盘或鼠标事件等。
以上实施方式实现了在PC上加载WebView的方法,同步支持PC端以及移动端,使得开发完全一致,Web开发者不再需要去面对各个操作系统的Web软件工具去开发,而是拥有一种统一的接口,使得代码可重用,进而满足快速响应的要求并减少开发人员的工作量,具体时效性高,部署效果确定的有益效果。
在一些实施方式中,UniWebViewManager和UniWebViewDialog之间为C/S架构。在本实施方式中,UniWebViewManager可以为服务层面,UniWebViewDialog为客户层面,UniWebViewManager,用于跟Unity直接进行交互,UniWebViewDialog管理具体网页并负责响应传输Unity与网页之间的消息,如键盘或鼠标事件等。
通过本实施方式可以看出,UniWebViewDialog类对应游戏中打开的每一个网页,游戏中打开的网页有多个,UniWebViewDialog可以快速有效地将各个网页消息传输给Unity。
在一些实施方式中,当所述UA设置为Android或者IOS时,UniWebView与Unity调用的方式为UrlScheme方式;当所述UA设置为Windows时,所述UniWebViewManager与所述Unity的调用方式为暴露C#接口给接入插件即可处理。
通过本实施方式可以看出,开发者为保证网页端调用unity的方式一致,封装了统一的调用方法,在网页加载完成的时候unity层次通过平台判断决定注入不同的js代码,其中该js代码中包含了将会被网页调用的方法。通过拥有一种统一的接口,使得代码可重用,进而满足快速响应的要求并减少开发人员的工作量,具体时效性高,部署效果确定的有益效果。
在一些实施方式中,unity和网页之间的消息包括键盘或鼠标事件。
如图2所示为本发明一实施例提供的一种在PC上加载WebView的系统,包括:内嵌浏览器模块01,用于在Unity中内嵌H5页面并使用内嵌网页浏览器插件Embedded Browser显示所述H5页面;
系统识别模块02,用于判断需要部署的操作系统类型;
系统类型记录模块03,用于设置与所述操作系统类型对应的浏览器标签UA;
UniWebView接口04,用于实现WebView加载内部页面;
UniWebView05,用于当UA设置为Android或者IOS时,通过UniWebView直接调用Android和IOS的Native API用以实现WebView加载内部页面;
PC模拟UniWebView模块06,包括UniWebViewManager以及UniWebViewDialog,所述UniWebViewManager与UniWebViewDialog进行交互,所述UniWebViewDialog用于管理具体网页并负责响应传输unity和网页之间的消息。
在一些实施方式中,UniWebViewManager和UniWebViewDialog之间为C/S架构。
在一些实施方式中,当所述UA设置为Android或者IOS时,所述UniWebView与Unity调用的方式为UrlScheme方式;
当所述UA设置为Windows时,所述UniWebViewManager与所述Unity的调用方式为暴露C#接口。
如图3所示,本发明实施例还提供一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如前述的一种在PC上加载WebView的方法。
其中,处理器11可以为中央处理器(Central Processing Unit,CPU)。处理器11还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器11也可以是任何常规的处理器等。
存储器12作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块。处理器11通过运行存储在存储器12中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述实施例中的游戏场景中的阴影处理方法。
存储器12可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据多业务系统的运行装置的使用所创建的数据等。此外,存储器12可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器12可选包括相对于处理器11远程设置的存储器,这些远程存储器可以通过网络连接至采用上述信令传输方法的会议终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器12中,当被所述一个或者多个处理器11执行时,执行前述实施例中所述的方法步骤。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,具体可参见如前述实施例中的相关描述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
根据本发明的另一个方面,提供一种计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如前述方法的步骤。
本发明的技术方案实现了在PC上加载WebView的方法即系统,同步支持PC端以及移动端,使得开发完全一致,Web开发者不再需要去面对各个操作系统的Web软件工具去开发,而是拥有一种统一的接口,使得代码可重用,进而满足快速响应的要求并减少开发人员的工作量,具体时效性高,部署效果确定的有益效果。
以上所述的仅是本发明的一些实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明的创造构思的前提下,还可以做出其它变形和改进,这些都属于本发明的保护范围。
Claims (10)
1.一种在PC上加载WebView的方法,其特征在于,所述方法包括以下步骤:
S11:在Unity中内嵌H5页面并使用内嵌网页浏览器插件EmbeddedBrowser显示所述H5页面;
S12:判断需要部署的操作系统类型;
S13:设置与所述操作系统类型对应的浏览器标签UA;
S14:当UA设置为Android或者IOS时,通过UniWebView直接调用Android和IOS的NativeAPI用以实现WebView加载内部页面;
当UA设置为Windows时,调用封装好的UniWebViewManager,用于跟Unity直接进行交互,所述UniWebViewManager与UniWebViewDialog进行交互,所述UniWebViewDialog用于管理具体网页并负责响应传输Unity 和网页之间的消息。
2.根据权利要求1所述的一种在PC上加载WebView的方法,其特征在于,所述UniWebViewManager和UniWebViewDialog之间为C/S架构。
3.根据权利要求1所述的一种在PC上加载WebView的方法,其特征在于,所述操作系统类型为Android、IOS或Windows操作系统。
4.根据权利要求1所述的一种在PC上加载WebView的方法,其特征在于,
当所述UA设置为Android或者IOS时,所述UniWebView与Unity调用的方式为UrlScheme方式;
当所述UA设置为Windows时,所述UniWebViewManager与所述Unity的调用方式为暴露C#接口。
5.根据权利要求1所述的一种在PC上加载WebView的方法,其特征在于,Unity 和网页之间的消息包括键盘或鼠标事件。
6.一种在PC上加载WebView的系统,其特征在于,包括:
内嵌浏览器模块,用于在Unity中内嵌H5页面并使用内嵌网页浏览器插件EmbeddedBrowser显示所述H5页面;
系统识别模块,用于判断需要部署的操作系统类型;
系统类型记录模块,用于设置与所述操作系统类型对应的浏览器标签UA;
UniWebView接口,用于实现WebView加载内部页面;
UniWebView,用于当UA设置为Android或者IOS时,通过UniWebView直接调用Android和IOS的Native API用以实现WebView加载内部页面;
PC模拟UniWebView模块,包括UniWebViewManager以及UniWebViewDialog,所述UniWebViewManager与UniWebViewDialog进行交互,所述UniWebViewDialog用于管理具体网页并负责响应传输Unity 和网页之间的消息。
7.根据权利要求6所述的一种在PC上加载WebView的系统,其特征在于,所述UniWebViewManager和UniWebViewDialog之间为C/S架构。
8.根据权利要求6所述的一种在PC上加载WebView的系统,其特征在于,当所述UA设置为Android或者IOS时,所述UniWebView与Unity调用的方式为UrlScheme方式;
当所述UA设置为Windows时,所述UniWebViewManager与所述Unity的调用方式为暴露C#接口。
9.一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至5中任意一项所述的一种在PC上加载WebView的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至5中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910506598.4A CN110221830B (zh) | 2019-06-12 | 2019-06-12 | 一种在PC上加载WebView的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910506598.4A CN110221830B (zh) | 2019-06-12 | 2019-06-12 | 一种在PC上加载WebView的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110221830A CN110221830A (zh) | 2019-09-10 |
CN110221830B true CN110221830B (zh) | 2020-07-17 |
Family
ID=67816679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910506598.4A Active CN110221830B (zh) | 2019-06-12 | 2019-06-12 | 一种在PC上加载WebView的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110221830B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111897534B (zh) * | 2020-06-22 | 2023-11-10 | 北京天融信网络安全技术有限公司 | 一种访问sslvpn的方法、装置、电子设备及存储介质 |
CN112363732A (zh) * | 2020-10-15 | 2021-02-12 | 深圳市明源云科技有限公司 | 网站封装方法、装置、终端设备及计算机可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106777355A (zh) * | 2017-01-18 | 2017-05-31 | 深圳市华第时代科技有限公司 | 兼容苹果操作系统和安卓操作系统的方法及装置 |
CN108021614A (zh) * | 2017-08-18 | 2018-05-11 | 口碑(上海)信息技术有限公司 | 一种用于页面动态加载的方法及系统 |
-
2019
- 2019-06-12 CN CN201910506598.4A patent/CN110221830B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110221830A (zh) | 2019-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111338623B (zh) | 一种开发用户界面的方法、装置、介质和电子设备 | |
CN110221830B (zh) | 一种在PC上加载WebView的方法及系统 | |
US20120260267A1 (en) | Methods and Systems for Supporting a Rendering API Using a Runtime Environment | |
US9558014B2 (en) | System, method and apparatus for transparently enabling software applications with adaptive user interfaces | |
CN110007936B (zh) | 数据处理方法和装置 | |
CN110928571A (zh) | 业务程序开发方法和装置 | |
CN111666199B (zh) | 在智能终端上执行的调试方法以及软件调试器 | |
CN110574006B (zh) | 用于自动同步设备上响应与条件的系统和方法 | |
CN109032693B (zh) | 一种加载展示信息方法、装置、电子设备及可读存储介质 | |
CN108509228B (zh) | 加载页面的方法、终端设备及计算机可读存储介质 | |
CN105577828A (zh) | 一种远程重定向方法和装置 | |
CN110708238B (zh) | 用于处理信息的方法和装置 | |
CN110457632B (zh) | 网页加载的处理方法及装置 | |
CN112380469A (zh) | 一种页面显示方法、装置、系统、电子设备及存储介质 | |
CN108037914B (zh) | 一种安卓原生系统结合js开发的方法及装置 | |
US9916391B2 (en) | Method, apparatus and terminal for webpage content browsing | |
CN113760487B (zh) | 一种业务处理方法和装置 | |
CN113535544A (zh) | 一种待调试子应用运行方法、计算机设备以及装置 | |
CN113726855A (zh) | 服务聚合方法、装置、电子设备以及计算机可读存储介质 | |
CN112579447A (zh) | 一种浏览器测试方法和装置 | |
CN112565472A (zh) | 静态资源的处理方法和装置 | |
CN109408762A (zh) | 一种在页面中加载广告的方法及装置 | |
CN113760723B (zh) | 一种业务流程调试方法和装置 | |
CN113760706B (zh) | 网页调试方法及装置 | |
CN113760322A (zh) | 软件更新方法、装置以及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |