CN111488152B - 一种应用程序页面预览的方法和相关装置、系统 - Google Patents
一种应用程序页面预览的方法和相关装置、系统 Download PDFInfo
- Publication number
- CN111488152B CN111488152B CN201910085228.8A CN201910085228A CN111488152B CN 111488152 B CN111488152 B CN 111488152B CN 201910085228 A CN201910085228 A CN 201910085228A CN 111488152 B CN111488152 B CN 111488152B
- Authority
- CN
- China
- Prior art keywords
- page
- code
- module
- page element
- call statement
- 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/40—Transformation of program code
- G06F8/41—Compilation
-
- 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/34—Graphical or visual programming
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种应用程序编译、页面预览的方法和相关装置、系统。所述应用程序编译的方法,包括:将应用程序中页面源代码的代码语言转化为指定语言版本的代码语言,将页面源代码中的调用语句转化成指定用户端使用的代码协议对应的调用语句,将页面源代码中的页面元素源代码,封装成可调用的页面元素代码模块;得到由指定语言版本的代码语言表述的包括转化后的调用语句、页面元素代码模块的所述应用程序的可执行程序包。能够使得各指定用户端都可以直接解析并运行应用程序的可执行程序包,预览其页面效果,省去了每个平台的编译过程,大大提高了开发效率。
Description
技术领域
本发明涉及应用程序开发技术领域,特别涉及一种应用程序页面预览的方法和相关装置、系统。
背景技术
目前针对不同的平台,查看开发的应用程序,需要在相应平台的开发工具中单独编译应用程序的源代码,生成目标代码,运行相应的目标代码,才能查看其页面预览,例如苹果公司开发的移动操作系统iOS使用Xcode开发工具编译、运行相应的代码,查看其页面预览;移动操作系统安卓使用谷歌提供的开发工具编译、运行相应的代码,查看其页面预览;Web端使用浏览器编译、运行相应的代码,查看其页面预览。每个平台都需要单独编译应用程序的源代码,过程复杂,耗时长,效率低。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种应用程序页面预览的方法和相关装置、系统。
第一方面,本发明实施例提供一种应用程序编译的方法,包括:
将所述应用程序中页面源代码的代码语言转化为指定语言版本的代码语言;将所述页面源代码中的调用语句转化成指定用户端使用的代码协议对应的调用语句;将所述页面源代码中的页面元素源代码,封装成可调用的页面元素代码模块;
得到由所述指定语言版本的代码语言表述的包括转化后的调用语句、所述页面元素代码模块的所述应用程序的可执行程序包。
在一些可选的实施例中,将所述页面源代码中的调用语句转化成指定用户端使用的代码协议对应的调用语句,包括:
根据预先定义的源代码调用语句与指定用户端的调用语句的映射关系,将所述页面源代码中的调用语句转换成指定用户端对应的调用语句。
在一些可选的实施例中,将所述页面源代码中的调用语句转换成指定用户端对应的调用语句,包括:
当指定用户端不止一个时,将所述页面源代码的每一段调用语句,分别转换成每个指定用户端对应的调用语句,将所述每个指定用户端对应的调用语句放入相应的目录中。
在一些可选的实施例中,上述应用程序编译的方法,还包括:
当监测到所述页面源代码更新时,将所述页面源代码的更新部分转换成由所述指定语言版本的代码语言表述的包括转化后的调用语句和页面元素代码模块的新目标代码;
通过socket连接将所述新目标代码发送给指定用户端,使得所述指定用户端运行所述新目标代码来刷新页面。
在一些可选的实施例中,生成所述可执行程序包的下载链接,包括:
生成所述可执行程序包的二维码和/或超链接;所述二维码用于指定用户端中的移动端扫描后下载所述可执行程序包并运行所述应用程序;所述超链接用于指定用户端中的web端点击后下载所述可执行程序包并运行所述应用程序。
第二方面,本发明实施例提供一种应用程序页面预览的方法,包括:
根据自身使用的代码协议,执行所述应用程序的可执行程序包中相应的调用语句;
根据所述调用语句到相应位置调用所述可执行程序包中对应的页面元素代码模块;
判断自身是否支持预览所述页面元素代码模块的页面元素代码所对应的页面元素;
若是,执行所述页面元素代码模块中的页面元素代码,生成页面元素预览信息;
若否,根据预先建立的映射关系库,获取与所述页面元素代码模块中的页面元素代码对应的可执行代码,执行所述可执行代码生成页面元素预览信息;
根据所述页面元素预览信息生成展示给用户的预览页面。
在一些可选的实施例中,根据自身使用的代码协议,执行所述应用程序的可执行程序包中相应的调用语句之前,还包括:
注入预先封装的所述页面的运行环境模块,执行所述页面的运行环境模块生成所述页面的初始预览信息;
注入预先封装的所述页面子页面的运行环境模块,执行所述页面子页面的运行环境模块生成所述子页面的初始预览信息。
第三方面,本发明实施例提供一种开发客户端,包括:
编译器,用于将所述应用程序中页面源代码的代码语言转化为指定语言版本的代码语言,将所述页面源代码中的调用语句转化成指定用户端使用的代码协议对应的调用语句将所述页面源代码中的页面元素源代码,封装成可调用的页面元素代码模块;
第一生成模块,用于得到所述编译器编译的由所述指定语言版本的代码语言表述的包括转化后的调用语句、所述页面元素代码模块的所述应用程序的可执行程序包。
在一些可选的实施例中,所述编译器,具体用于:
根据预先定义的源代码语句与指定用户端的调用语句的映射关系,将所述页面源代码中的调用语句转换成指定用户端对应的调用语句。
在一些可选的实施例中,所述编译器,具体用于:
当指定用户端大于一个时,将所述页面源代码的每一段调用语句,分别转换成每个指定用户端对应的调用语句,将所述每个指定用户端对应的调用语句放入相应的目录中。
在一些可选的实施例中,上述开发客户端,还包括,监测模块和发送模块:
所述监测模块,用于监测所述页面源代码是否更新;相应的,所述编译器,还用于:
当所述监测模块监测到所述页面源代码更新时,将所述页面源代码的更新部分转换成由所述指定语言版本的代码语言表述的包括转化后的调用语句和页面元素代码模块的新目标代码;相应的,
所述发送模块,用于通过socket连接将所述编译器编译的所述新目标代码发送给指定用户端,使得所述指定用户端运行所述新目标代码来刷新页面。
在一些可选的实施例中,所述第二生成模块,还用于:
生成所述可执行程序包的二维码和/或超链接,所述二维码用于指定用户端中的移动端扫描后下载所述可执行程序包并运行所述应用程序,所述超链接用于指定用户端中的web端点击后下载所述可执行程序包并运行所述应用程序。
第四方面,本发明实施例提供一种用户端,包括:
执行模块,用于根据自身使用的代码协议,执行所述应用程序的可执行程序包中相应的调用语句;
调用模块,用于根据所述执行模块执行的所述调用语句到相应位置调用所述可执行程序包中对应的页面元素代码模块;
判断模块,用于判断自身是否支持预览所述调用模块调用的所述页面元素代码模块的页面元素代码所对应的页面元素;
生成模块,用于当所述判断模块判断为是时,执行所述页面元素代码模块中的页面元素代码,生成页面元素预览信息;
获取模块,用于当所述判断模块判断为否时,根据预先建立的映射关系库,获取与所述页面元素代码模块中的页面元素代码对应的可执行代码;相应的,所述生成模块,用于执行所述获取模块获取的所述可执行代码生成页面元素预览信息;
展示模块,用于根据所述生成模块生成的所述页面元素预览信息生成预览页面。
在一些可选的实施例中,上述用户端,还包括:
初始化模块,用于注入预先封装的所述页面的运行环境模块,执行所述页面的运行环境模块生成所述页面的初始预览信息;注入预先封装的所述页面子页面的运行环境模块,执行所述页面子页面的运行环境模块生成所述子页面的初始预览信息。
第五方面,本发明实施例提供一种应用程序预览的系统,包括:上述开发客户端和至少一个上述用户端;
所述用户端用于下载所述开发客户端生成的所述应用程序的可执行程序包,运行所述程序包生成预览页面。
本发明实施例提供的上述技术方案的有益效果至少包括:
1、本发明实施例提供的应用程序编译的方法,将应用程序中页面源代码的代码语言转化为指定语言版本的代码语言;将页面源代码中的调用语句转化成指定用户端使用的代码协议对应的调用语句;将页面源代码中的页面元素源代码,封装成可调用的页面元素代码模块;得到由指定语言版本的代码语言表述的包括转化后的调用语句、页面元素代码模块的所述应用程序的可执行程序包。每开发完应用程序的至少一个页面后,在任一指定的用户端都可以直接解析并运行应用程序的可执行程序包,预览其页面效果,不用每个平台重新编译,省去了多端编译的麻烦,提高了开发效率。
2、本发明实施例提供的应用程序编译的方法,当监测到页面源代码更新时,将更新部分转换成新目标代码;通过socket连接将新目标代码发送给指定用户端,使得指定用户端运行新目标代码来刷新页面。每修改完一次页面源代码后,开发客户端便会自动将更新部分转换成新目标代码发送给指定用户端,以便在指定用户端预览其效果;对于开发者而言,每完成一次页面源代码的修改,无需任何操作,便可以直接在各用户端查看到其更新后的页面预览效果,方便及时的了解到源代码的哪些地方是否需要修改,显著提高了开发效率。
3、本发明实施例提供的应用程序页面预览的方法,用户端根据自身使用的代码协议,执行应用程序的可执行程序包中相应的调用语句,到相应位置调用可执行程序包中对应的页面元素代码模块;判断自身是否支持预览所述页面元素代码模块的页面元素代码所对应的页面元素;若是,执行所述页面元素代码模块中的页面元素代码,生成页面元素预览信息;若否,根据预先建立的映射关系库,获取与所述页面元素代码模块中的页面元素代码对应的可执行代码,执行所述可执行代码生成页面元素预览信息;根据所述页面元素预览信息生成预览页面。使得用户端可以突破自身原有的展示功能,完整的展示出程序包中描述的展示效果,能够实现在任一指定用户端都可以预览到相同的开发者定义的展示效果。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例一中所述应用程序编译的方法的流程图;
图2为本发明实施例二中所述应用程序页面预览的方法的流程图;
图3为本发明实施例中所述开发客户端的结构示意图;
图4为本发明实施例中所述用户端的结构示意图;
图5为本发明实施例中所述应用程序预览的系统的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了解决现有技术中存在的查看应用程序的开发效果需要分别在不同的平台编译运行查看费时费力的问题,本发明实施例提供一种应用程序编译和页面预览的方法,能够使得各指定用户端都无需再单独编译便可直接运行应用程序,预览其页面效果,大大提高了开发效率。
实施例一
本发明实施例一提供一种应用程序编译的方法,其流程如图1所示,包括如下步骤:
步骤S11:将应用程序中页面源代码的代码语言转化为指定语言版本的代码语言;将页面源代码中的调用语句转化成指定用户端使用的代码协议对应的调用语句;将页面源代码中的页面元素源代码,封装成可调用的页面元素代码模块。
获取开发人员用预先定义的代码语言即自定义语法的编程语言编写的应用程序中的页面源代码,具体的,可以是获取应用程序中的一个页面对应的页面源代码。
获取的开发者编写的源代码不能直接运行在手机或浏览器中,具体可以是通过编译器分析源代码的语法树,按每句源代码的具体形式进行分析,首先将源代码的代码语言转化为指定语言版本的代码语言。例如,将其中的普通逻辑运算语言进行上述语法上的转换。其中,指定语言版本的代码语言可以是各个指定用户端都能够识别的通用版本的代码语言,例如是IOS操作系统、安卓操作系统和web端操作系统都识别的较低级版本的代码语言。
将每句源代码在语法上完成指定语言版本的代码语言的转换后,或是同时,将其中的调用语句转化成指定用户端使用的代码协议对应的调用语句。具体的,可以是,根据预先定义的源代码语句与指定用户端的调用语句的映射关系,将页面源代码中的调用语句转换成指定用户端对应的调用语句。
可以是,当指定用户端不止一个时,将页面源代码的每一段调用语句,分别转换成每个指定用户端对应的调用语句,将每个指定用户端对应的调用语句放入相应的目录中。
如将源代码中的require('some.js')编译为如下代码:
require('path://module_name/path/some.js')(手机中运行);
require('/root/path/some.js')(浏览器中运行)。
上述调用语句要调用系统的功能时,需要将调用语句分别映射到指定用户端,这样每个指定用户端在执行相应的调用语句时,才能完成系统的相应功能(系统API))的调用。
将每句源代码中的调用语句转化成指定用户端使用的代码协议对应的调用语句的同时,将调用语句对应的页面元素源代码,封装成可调用的页面元素代码模块。因为用户端在调用具有相应功能的源代码时可能会导致程序崩溃,所以编译过程中需要将其要调用的具有相应功能的源代码封装成功能模块,运行时直接调用功能模块即可。
步骤S12:得到由指定语言版本的代码语言表述的包括转化后的调用语句、页面元素代码模块的应用程序的可执行程序包。
将源代码语法树中的每句源代码都完成了上述步骤S11的转换后,将其重新拼装到一起,生成一份全新的可在各指定用户端运行的目标代码,即得到由指定语言版本的代码语言表述的包括转化后的调用语句、页面元素代码模块的应用程序的可执行程序包。
可选的,得到可执行程序包后,还可以,生成可执行程序包的下载链接。
具体的,可以是,生成可执行程序包的二维码和/或超链接;所述二维码用于指定用户端中的移动端扫描后下载所述可执行程序包并运行所述应用程序;所述超链接用于指定用户端中的web端点击后下载所述可执行程序包并运行所述应用程序。
本发明实施例提供的应用程序编译的方法,将应用程序中页面源代码的代码语言转化为指定语言版本的代码语言;将页面源代码中的调用语句转化成指定用户端使用的代码协议对应的调用语句;将页面源代码中的页面元素源代码,封装成可调用的页面元素代码模块;得到由指定语言版本的代码语言表述的包括转化后的调用语句、页面元素代码模块的所述应用程序的可执行程序包;生成可执行程序包的下载链接。每开发完应用程序的至少一个页面后,在任一指定的用户端都可以直接解析并运行应用程序的可执行程序包,预览其页面效果,不用每个平台重新编译,省去了多端编译的麻烦,提高了开发效率。
在一些可选的实施例中,可以是,当监测到页面源代码更新时,将页面源代码的更新部分转换成由所述指定语言版本的代码语言表述的包括转化后的调用语句和页面元素代码模块的新目标代码;通过socket连接将新目标代码发送给指定用户端,使得所述指定用户端运行新目标代码来刷新页面。
每个指定用户端启动应用程序后,便与开发客户端建立了socket连接,故,开发客户端可以实时的通过socket连接向用户端推送更新的目标代码,以便用户端刷新页面生成新的页面预览。
每修改完一次页面源代码后,开发客户端便会自动将更新部分转换成新目标代码发送给指定用户端,以便在指定用户端预览其效果;对于开发者而言,每完成一次页面源代码的修改,无需任何操作,便可以直接在各用户端查看到其更新后的页面预览效果,方便及时的了解到源代码的哪些地方是否需要修改,显著提高了开发效率。
实施例二
本发明实施例二提供一种应用程序页面预览的方法,其流程如图2所示,包括如下步骤:
步骤S21:根据自身使用的代码协议,执行应用程序的可执行程序包中相应的调用语句。
客户端下载了应用程序的可执行程序包后,首先对其中的目标代码进行解析,解析成自身系统所能执行的代码,再执行其中的每一句调用语句。
步骤S22:根据调用语句到相应位置调用可执行程序包中对应的页面元素代码模块。
步骤S23:判断自身是否支持预览页面元素代码模块的页面元素代码所对应的页面元素。
当调用语句需要调用运行客户端的相应的系统功能来完成并展示对应的页面元素时,由于不同客户端对于同一页面元素能够实现的预览效果不同,直接调用系统的功能不一定能够实现页面元素代码所对应的页面元素。
故,需要先判断自身是否支持预览页面元素代码模块的页面元素代码所对应的页面元素。若判断为是,执行步骤S24;若判断为否,执行步骤S25。
步骤S24:执行页面元素代码模块中的页面元素代码,生成页面元素预览信息。
步骤S25:根据预先建立的映射关系库,获取与所述页面元素代码模块中的页面元素代码对应的可执行代码,执行所述可执行代码生成页面元素预览信息。
例如,在web端要展示手机端相同的预览效果,比如一个确认弹窗,web端浏览器本身不支持这个功能,这时就需要预先在页面中预埋一个用户界面效果同手机一致的确认弹框,通过调用alert函数来模拟此功能,调用此函数时将预埋的用户界面进行展示,以达到和手机中相同的效果。
例如,展示页面滚动效果,安卓操作系统直接根据调用语句调用系统的相应API便可实现;IOS操作系统则需要针对页面滚动效果来封装相应的可执行代码,要调用相应的API时,调用提前封装好的可执行代码即可。
再例如,展示一个阴影效果,安卓操作系统直接根据调用语句在当前的图层上调用增加阴影效果的功能即可;IOS操作系统则需要预先将展示一个图层和展示相应阴影的功能模块封装在一起,调用封装后的模块才能展示出阴影效果。
上述与所述页面元素代码模块中的页面元素代码对应的可执行代码都是相应的客户端预先封装好的,每个客户端针对每一个页面元素代码都提前定义了是直接调用还是转换调用;并针对需要转换调用的页面元素代码,都预先建立了对应的关系库。
步骤S26:根据页面元素预览信息生成预览页面。
经过上述步骤S21-S25所有页面元素的预览信息都生成后,便可以根据页面元素预览信息生成展示给用户的预览页面。
本发明实施例提供的应用程序编译的方法,用户端根据自身使用的代码协议,执行应用程序的可执行程序包中相应的调用语句,到相应位置调用可执行程序包中对应的页面元素代码模块;判断自身是否支持预览所述页面元素代码模块的页面元素代码所对应的页面元素;若是,执行所述页面元素代码模块中的页面元素代码,生成页面元素预览信息;若否,根据预先建立的映射关系库,获取与所述页面元素代码模块中的页面元素代码对应的可执行代码,执行所述可执行代码生成页面元素预览信息;根据所述页面元素预览信息生成展示给用户的预览页面。使得用户端可以突破自身原有的展示功能,完整的展示出程序包中描述的展示效果,能够实现在任一指定用户端都可以预览到相同的开发者定义的展示效果。
在一些可选的实施例中,执行上述步骤S21之前,还可以:注入预先封装的所述页面的运行环境模块,执行所述页面的运行环境模块生成所述页面的初始预览信息;注入预先封装的所述页面子页面的运行环境模块,执行所述页面子页面的运行环境模块生成所述子页面的初始预览信息。
注入的预先封装的页面和子页面的运行环境模块,都是基础的运行环境模块,提前注入,避免了每一次生成页面预览都要一一单独调用,节省了页面预览时间,也减轻了系统执行应用程序的运行负担。
基于与实施例一的同一发明构思,本发明实施例还提供一种开发客户端,其结构如图3所示,包括:
编译器31,用于将所述应用程序中页面源代码的代码语言转化为指定语言版本的代码语言,将所述页面源代码中的调用语句转化成指定用户端使用的代码协议对应的调用语句,将所述页面源代码中的页面元素源代码,封装成可调用的页面元素代码模块;
第一生成模块32,用于得到所述编译器31编译的由所述指定语言版本的代码语言表述的包括转化后的调用语句、所述页面元素代码模块的所述应用程序的可执行程序包;
第二生成模块33,用于生成所述第一生成模块32得到的所述可执行程序包的下载链接。
在一些可选的实施例中,所述编译器31,具体用于:
根据预先定义的源代码语句与指定用户端的调用语句的映射关系,将所述页面源代码中的调用语句转换成指定用户端对应的调用语句。
在一些可选的实施例中,所述编译器31,具体用于:
当指定用户端大于一个时,将所述页面源代码的每一段调用语句,分别转换成每个指定用户端对应的调用语句,将所述每个指定用户端对应的调用语句放入相应的目录中。
在一些可选的实施例中,上述开发客户端,还包括,监测模块34和发送模块35:
监测模块34,用于监测所述页面源代码是否更新;相应的,所述编译器31,还用于:
当所述监测模块34监测到所述页面源代码更新时,将所述页面源代码的更新部分转换成由所述指定语言版本的代码语言表述的包括转化后的调用语句和页面元素代码模块的新目标代码;相应的,
发送模块35,用于通过socket连接将所述编译器31编译的所述新目标代码发送给指定用户端,使得所述指定用户端运行所述新目标代码来刷新页面。
在一些可选的实施例中,所述第二生成模块33,还用于:
生成所述可执行程序包的二维码和/或超链接,所述二维码用于指定用户端中的移动端扫描后下载所述可执行程序包并运行所述应用程序,所述超链接用于指定用户端中的web端点击后下载所述可执行程序包并运行所述应用程序。
基于与实施例二的同一发明构思,本发明实施例还提供一种用户端,其结构如图4所示,包括:
执行模块41,用于根据自身使用的代码协议,执行所述应用程序的可执行程序包中相应的调用语句;
调用模块42,用于根据所述执行模块41执行的所述调用语句到相应位置调用所述可执行程序包中对应的页面元素代码模块;
判断模块43,用于判断自身是否支持预览所述调用模块42调用的所述页面元素代码模块的页面元素代码所对应的页面元素;
生成模块44,用于当所述判断模块43判断为是时,执行所述页面元素代码模块中的页面元素代码,生成页面元素预览信息;
获取模块45,用于当所述判断模块43判断为否时,根据预先建立的映射关系库,获取与所述页面元素代码模块中的页面元素代码对应的可执行代码;相应的,所述生成模块44,用于执行所述获取模块45获取的所述可执行代码生成页面元素预览信息;
展示模块46,用于根据所述生成模块44生成的所述页面元素预览信息生成预览页面。
在一些可选的实施例中,上述用户端,还包括:
初始化模块47,用于注入预先封装的所述页面的运行环境模块,执行所述页面的运行环境模块生成所述页面的初始预览信息;注入预先封装的所述页面子页面的运行环境模块,执行所述页面子页面的运行环境模块生成所述子页面的初始预览信息。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于同一发明构思,本发明实施例还提供一种应用程序预览的系统,其结构如图5所示,包括:上述开发客户端51和至少一个上述用户端52;
所述用户端52用于下载所述开发客户端51生成的所述应用程序的可执行程序包,运行所述程序包生成预览页面。
除非另外具体陈述,术语比如处理、计算、运算、确定、显示等等可以指一个或更多个处理或者计算系统、或类似设备的动作和/或过程,所述动作和/或过程将表示为处理系统的寄存器或存储器内的物理(如电子)量的数据操作和转换成为类似地表示为处理系统的存储器、寄存器或者其他此类信息存储、发射或者显示设备内的物理量的其他数据。信息和信号可以使用多种不同的技术和方法中的任何一种来表示。例如,在贯穿上面的描述中提及的数据、指令、命令、信息、信号、比特、符号和码片可以用电压、电流、电磁波、磁场或粒子、光场或粒子或者其任意组合来表示。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。
结合本文的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或其组合。软件模块可以位于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动磁盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质连接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。该ASIC可以位于用户终端中。当然,处理器和存储介质也可以作为分立组件存在于用户终端中。
对于软件实现,本申请中描述的技术可用执行本申请所述功能的模块(例如,过程、函数等)来实现。这些软件代码可以存储在存储器单元并由处理器执行。存储器单元可以实现在处理器内,也可以实现在处理器外,在后一种情况下,它经由各种手段以通信方式耦合到处理器,这些都是本领域中所公知的。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
Claims (13)
1.一种应用程序页面预览的方法,其特征在于,包括:
根据自身使用的代码协议,执行应用程序的可执行程序包中相应的调用语句,所述可执行程序包预先通过下述方式得到:将所述应用程序中页面源代码的代码语言转化为指定语言版本的代码语言,将所述页面源代码中的调用语句转化成指定用户端使用的代码协议对应的调用语句,将所述页面源代码中的页面元素源代码,封装成可调用的页面元素代码模块;得到由所述指定语言版本的代码语言表述的包括转化后的调用语句、所述页面元素代码模块的所述应用程序的可执行程序包;
根据所述调用语句到相应位置调用所述可执行程序包中对应的页面元素代码模块;
判断自身是否支持预览所述页面元素代码模块的页面元素代码所对应的页面元素;
若是,执行所述页面元素代码模块中的页面元素代码,生成页面元素预览信息;
若否,根据预先建立的映射关系库,获取与所述页面元素代码模块中的页面元素代码对应的可执行代码,执行所述可执行代码生成页面元素预览信息;
根据所述页面元素预览信息生成预览页面。
2.如权利要求1所述的方法,其特征在于,将所述页面源代码中的调用语句转化成指定用户端使用的代码协议对应的调用语句,包括:
根据预先定义的源代码调用语句与指定用户端的调用语句的映射关系,将所述页面源代码中的调用语句转换成指定用户端对应的调用语句。
3.如权利要求2所述的方法,其特征在于,将所述页面源代码中的调用语句转换成指定用户端对应的调用语句,包括:
当所述指定用户端大于一个时,将所述页面源代码的每一段调用语句,分别转换成每个指定用户端对应的调用语句,将所述每个指定用户端对应的调用语句放入相应的目录中。
4.如权利要求1所述的方法,其特征在于,还包括:
当监测到所述页面源代码更新时,将所述页面源代码的更新部分转换成由所述指定语言版本的代码语言表述的包括转化后的调用语句和页面元素代码模块的新目标代码;
通过socket连接将所述新目标代码发送给指定用户端,使得所述指定用户端运行所述新目标代码来刷新页面。
5.如权利要求1~4任一所述的方法,其特征在于,还包括:
生成所述可执行程序包的二维码和/或超链接,所述二维码用于指定用户端中的移动端扫描后下载所述可执行程序包并运行所述应用程序,所述超链接用于指定用户端中的web端点击后下载所述可执行程序包并运行所述应用程序。
6.如权利要求1所述的方法,其特征在于,根据自身使用的代码协议,执行所述应用程序的可执行程序包中相应的调用语句之前,还包括:
注入预先封装的所述页面的运行环境模块,执行所述页面的运行环境模块生成所述页面的初始预览信息;
注入预先封装的所述页面子页面的运行环境模块,执行所述页面子页面的运行环境模块生成所述子页面的初始预览信息。
7.一种用户端,其特征在于,包括:
执行模块,用于根据自身使用的代码协议,执行应用程序的可执行程序包中相应的调用语句,所述可执行程序包预先通过下述方式得到:将所述应用程序中页面源代码的代码语言转化为指定语言版本的代码语言,将所述页面源代码中的调用语句转化成指定用户端使用的代码协议对应的调用语句,将所述页面源代码中的页面元素源代码,封装成可调用的页面元素代码模块;得到由所述指定语言版本的代码语言表述的包括转化后的调用语句、所述页面元素代码模块的所述应用程序的可执行程序包;
调用模块,用于根据所述执行模块执行的所述调用语句到相应位置调用所述可执行程序包中对应的页面元素代码模块;
判断模块,用于判断自身是否支持预览所述调用模块调用的所述页面元素代码模块的页面元素代码所对应的页面元素;
生成模块,用于当所述判断模块判断为是时,执行所述页面元素代码模块中的页面元素代码,生成页面元素预览信息;
获取模块,用于当所述判断模块判断为否时,根据预先建立的映射关系库,获取与所述页面元素代码模块中的页面元素代码对应的可执行代码;相应的,所述生成模块,用于执行所述获取模块获取的所述可执行代码生成页面元素预览信息;
展示模块,用于根据所述生成模块生成的所述页面元素预览信息生成预览页面。
8.如权利要求7所述的用户端,其特征在于,还包括:
初始化模块,用于注入预先封装的所述页面的运行环境模块,执行所述页面的运行环境模块生成所述页面的初始预览信息;注入预先封装的所述页面子页面的运行环境模块,执行所述页面子页面的运行环境模块生成所述子页面的初始预览信息。
9.一种应用程序预览的系统,其特征在于,包括:开发客户端和至少一个如权利要求7或8所述的用户端;
所述开发客户端,包括:编译器,用于将应用程序中页面源代码的代码语言转化为指定语言版本的代码语言,将所述页面源代码中的调用语句转化成指定用户端使用的代码协议对应的调用语句,将所述页面源代码中的页面元素源代码,封装成可调用的页面元素代码模块;第一生成模块,用于得到所述编译器编译的由所述指定语言版本的代码语言表述的包括转化后的调用语句、所述页面元素代码模块的所述应用程序的可执行程序包;
所述用户端用于下载所述开发客户端生成的所述应用程序的可执行程序包,运行所述程序包生成展示给用户的预览页面。
10.如权利要求9所述的系统,其特征在于,所述编译器,具体用于:
根据预先定义的源代码语句与指定用户端的调用语句的映射关系,将所述页面源代码中的调用语句转换成指定用户端对应的调用语句。
11.如权利要求10所述的系统,其特征在于,所述编译器,具体用于:
当所述指定用户端大于一个时,将所述页面源代码的每一段调用语句,分别转换成每个指定用户端对应的调用语句,将所述每个指定用户端对应的调用语句放入相应的目录中。
12.如权利要求9所述的系统,其特征在于,所述开发客户端还包括,监测模块和发送模块:
所述监测模块,用于监测所述页面源代码是否更新;相应的,所述编译器,还用于:
当所述监测模块监测到所述页面源代码更新时,将所述页面源代码的更新部分转换成由所述指定语言版本的代码语言表述的包括转化后的调用语句和页面元素代码模块的新目标代码;相应的,
所述发送模块,用于通过socket连接将所述编译器编译的所述新目标代码发送给指定用户端,使得所述指定用户端运行所述新目标代码来刷新页面。
13.如权利要求9~12任一所述的系统,其特征在于,所述开发客户端,还包括第二生成模块,用于:
生成所述可执行程序包的二维码和/或超链接,所述二维码用于指定用户端中的移动端扫描后下载所述可执行程序包并运行所述应用程序,所述超链接用于指定用户端中的web端点击后下载所述可执行程序包并运行所述应用程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910085228.8A CN111488152B (zh) | 2019-01-29 | 2019-01-29 | 一种应用程序页面预览的方法和相关装置、系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910085228.8A CN111488152B (zh) | 2019-01-29 | 2019-01-29 | 一种应用程序页面预览的方法和相关装置、系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111488152A CN111488152A (zh) | 2020-08-04 |
CN111488152B true CN111488152B (zh) | 2023-05-16 |
Family
ID=71796586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910085228.8A Active CN111488152B (zh) | 2019-01-29 | 2019-01-29 | 一种应用程序页面预览的方法和相关装置、系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111488152B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111897533A (zh) * | 2020-07-31 | 2020-11-06 | 平安普惠企业管理有限公司 | 页面输出方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001063919A1 (en) * | 2000-02-23 | 2001-08-30 | Penta Trading Ltd. | Systems and methods for generating and providing previews of electronic files such as web files |
CN101059758A (zh) * | 2006-04-19 | 2007-10-24 | 日本电气株式会社 | 屏幕转换程序生成方法及设备 |
CN101316349A (zh) * | 2007-05-31 | 2008-12-03 | 商埃曲网络软件(上海)有限公司 | 一种用于数字电视的交互式信息处理系统及方法 |
CN104572092A (zh) * | 2014-12-26 | 2015-04-29 | 北京奇虎科技有限公司 | 网页制作方法与装置 |
CN107273120A (zh) * | 2017-06-01 | 2017-10-20 | 山东若谷信息技术有限公司 | 一种快速搭建手机移动应用程序的方法和系统 |
CN109032606A (zh) * | 2018-07-10 | 2018-12-18 | 北京小米移动软件有限公司 | 原生应用程序的编译处理方法、装置及终端 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030005408A1 (en) * | 2001-07-02 | 2003-01-02 | Pradeep Tumati | System and method for creating software modifiable without halting its execution |
US10019259B2 (en) * | 2013-01-29 | 2018-07-10 | Mobilize.Net Corporation | Code transformation using extensibility libraries |
-
2019
- 2019-01-29 CN CN201910085228.8A patent/CN111488152B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001063919A1 (en) * | 2000-02-23 | 2001-08-30 | Penta Trading Ltd. | Systems and methods for generating and providing previews of electronic files such as web files |
CN101059758A (zh) * | 2006-04-19 | 2007-10-24 | 日本电气株式会社 | 屏幕转换程序生成方法及设备 |
CN101316349A (zh) * | 2007-05-31 | 2008-12-03 | 商埃曲网络软件(上海)有限公司 | 一种用于数字电视的交互式信息处理系统及方法 |
CN104572092A (zh) * | 2014-12-26 | 2015-04-29 | 北京奇虎科技有限公司 | 网页制作方法与装置 |
CN107273120A (zh) * | 2017-06-01 | 2017-10-20 | 山东若谷信息技术有限公司 | 一种快速搭建手机移动应用程序的方法和系统 |
CN109032606A (zh) * | 2018-07-10 | 2018-12-18 | 北京小米移动软件有限公司 | 原生应用程序的编译处理方法、装置及终端 |
Non-Patent Citations (1)
Title |
---|
张军 ; 朱贺 ; 魏树臣 ; 李凯 ; .3D打印模型及BIM模型Web嵌入应用.土木建筑工程信息技术.2017,(03),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111488152A (zh) | 2020-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096338B (zh) | 智能合约执行方法、装置、设备及介质 | |
US11151018B2 (en) | Method and apparatus for testing a code file | |
CN110134386B (zh) | 一种程序编辑方法和装置 | |
CN102289378B (zh) | 自动生成应用程序的方法 | |
CN107688529B (zh) | 组件调试方法和装置 | |
EP3971706B1 (en) | Method, apparatus and electronic device for deploying operator in deep learning frame work | |
CN112685035B (zh) | 项目开发方法及装置、计算机可读存储介质、电子设备 | |
US20110191752A1 (en) | Method and System for Debugging of Software on Target Devices | |
CN106325847B (zh) | 基于iOS平台获取应用程序功能的方法和装置 | |
GB2589658A (en) | Method and apparatus for running an applet | |
CN105159999A (zh) | 动态页面的展现方法及装置 | |
CN111240684B (zh) | 一种js代码的裁剪方法、装置、介质和电子设备 | |
CN111176629A (zh) | 一种应用开发的方法和装置 | |
CN110221848A (zh) | App页面更新方法、装置、电子设备及存储介质 | |
CN111930472B (zh) | 一种代码调试方法、装置、电子设备及存储介质 | |
CN113918195A (zh) | 应用界面更新方法、装置、电子设备及可读存储介质 | |
CN110795181A (zh) | 基于跳转协议的应用程序界面展示方法、装置及电子设备 | |
CN104598267A (zh) | 应用的调起方法及装置 | |
CN111488152B (zh) | 一种应用程序页面预览的方法和相关装置、系统 | |
EP2626784A1 (en) | Method and apparatus for automated MATLAB interfacing | |
CN106557411B (zh) | Android系统中Hybrid应用的测试方法及系统 | |
CN114217789A (zh) | 功能组件拓展方法、装置、设备、存储介质及程序产品 | |
CN111913741B (zh) | 对象拦截方法、装置、介质及电子设备 | |
CN113778405A (zh) | 一种跨平台app构建方法、装置、系统及介质 | |
CN113094138A (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 |