[go: up one dir, main page]

CN106980504A - 一种应用程序开发方法及其工具、设备 - Google Patents

一种应用程序开发方法及其工具、设备 Download PDF

Info

Publication number
CN106980504A
CN106980504A CN201710193344.2A CN201710193344A CN106980504A CN 106980504 A CN106980504 A CN 106980504A CN 201710193344 A CN201710193344 A CN 201710193344A CN 106980504 A CN106980504 A CN 106980504A
Authority
CN
China
Prior art keywords
code
page
class
file
content
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.)
Granted
Application number
CN201710193344.2A
Other languages
English (en)
Other versions
CN106980504B (zh
Inventor
龚澄
刘远宏
张吉
李园明
钟煜
徐江伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710193344.2A priority Critical patent/CN106980504B/zh
Publication of CN106980504A publication Critical patent/CN106980504A/zh
Priority to MYPI2019003935A priority patent/MY198787A/en
Priority to EP18777281.9A priority patent/EP3605324B1/en
Priority to PCT/CN2018/080564 priority patent/WO2018177260A1/zh
Priority to US16/449,206 priority patent/US10990367B2/en
Application granted granted Critical
Publication of CN106980504B publication Critical patent/CN106980504B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/22Procedural
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/423Preprocessors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4434Reducing the memory space required by the program code
    • G06F8/4436Exlining; Procedural abstraction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code
    • G06F8/4443Inlining
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种应用程序开发方法及其工具、设备,其中,所述方法包括:获取预定格式的输入文件,所述输入文件中包括用于组成所述应用程序各部分的内容代码;将所述输入文件中的每一部分的内容代码按照对应的预设的类别拆解为不同的类别代码;按照每一所述类别代码的属性调用对应的编译器对所述类别代码进行编译,对应地得到每一所述类别代码的描述文件;将每一部分的所述类别代码的描述文件进行插件处理,得到所述应用程序。

Description

一种应用程序开发方法及其工具、设备
技术领域
本发明涉及移动应用技术,尤其涉及一种应用程序开发方法及其工具、设备。
背景技术
随着终端技术和移动互联网技术的发展,如手机、平板电脑等终端上安装的移动应用(MA,Mobile Application)越来越多,例如即时通讯类应用、娱乐应用、新闻应用、游戏类应用、金融类应用、益智类应用、学习类应用、支付类应用、搜索类应用、生活便利类的应用。用户想要享用某种服务例如向商家付款,那么用户首先得安装具有支付功能的应用,然后打开应用享用服务,这种需要安装才能享用服务的方式越来越不适合快速、便捷和共享的生活理念。
目前,知识、信息类的轻量化产品的共享可最大范围的共享和受益,出行共享、服务共享、实体经济的共享则会受到一定的地域或者时间的限制,此类服务性共享则需要寻找一个虚拟的节点,在这种情况下,小程序应运而生,小程序正是为快速、便捷和共享提供一种虚拟节点,这样便通过互联网的连接完成了广泛地共享。小程序让这种服务共享变为一种信息而变得唾手可得,将服务和小程序连接起来,若即若离,既远离了本身内容生态,又和用户连接在一起为用户服务,此种模式可以成为一种轻型的线上到线下(O2O,OnlineTo Offline)服务,排除主程序如微信等臃肿的同时,实现了服务共享。
小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一搜即可打开应用。由于小程序本身并不需要安装和卸载,所以小程序也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。小程序的出现使得应用将无处不在,随时可用,但又无需安装卸载。
基于上述小程序的这些优点,小程序已经变得炙手可热,然而小程序的开发却依然处于一个人工编写小程序所需要的各个文件(例如脚本语言(js,Java Script)文件和JavaScript对象表示法(json,Java Script Object Notation)文件)的阶段,因此导致小程序的开发非常耗时和费力。
发明内容
有鉴于此,本发明实施例为解决现有技术中存在的至少一个问题而提供一种应用程序(小程序)开发方法及其工具、设备,能够解决目前应用程序开发的耗时和费力问题,从而快速便捷的开发应用程序。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供一种应用程序开发方法,所述方法包括:
获取预定格式的输入文件,所述输入文件中包括用于组成所述应用程序各部分的内容代码;
将所述输入文件中的每一部分的内容代码按照对应的预设的类别拆解为不同的类别代码;
按照每一所述类别代码的属性调用对应的编译器对所述类别代码进行编译,对应地得到每一所述类别代码的描述文件;
将每一部分的所述类别代码的描述文件进行插件处理,得到所述应用程序。
第二方面,本发明实施例提供一种应用程序开发工具,所述工具包括获取单元、拆解单元、编译单元和处理单元,其中:
所述获取单元,用于获取预定格式的输入文件,所述输入文件中包括用于组成所述应用程序各部分的内容代码;
所述拆解单元,用于将所述输入文件中的每一部分的内容代码按照对应的预设的类别拆解为不同的类别代码;
所述编译单元,用于按照每一所述类别代码的属性调用对应的编译器对所述类别代码进行编译,对应地得到每一所述类别代码的描述文件;
所述处理单元,用于将每一部分的所述类别代码的描述文件进行插件处理,得到所述应用程序。
第三方面,本发明实施例提供一种应用程序开发设备,所述设备包括存储介质和处理器,其中:
存储介质,配置为存储计算机可执行指令;
处理器,配置为执行存储的计算机可执行指令,所述计算机可执行指令包括:
获取预定格式的输入文件,所述输入文件中包括用于组成所述应用程序各部分的内容代码;
将所述输入文件中的每一部分的内容代码按照对应的预设的类别拆解为不同的类别代码;
按照每一所述类别代码的属性调用对应的编译器对所述类别代码进行编译,对应地得到每一所述类别代码的描述文件;
将每一部分的所述类别代码的描述文件进行插件处理,得到所述应用程序。
本发明实施例提供一种应用程序开发方法及其工具、设备,其中,获取预定格式的输入文件,所述输入文件中包括用于组成所述应用程序各部分的内容代码;将所述输入文件中的每一部分的内容代码按照对应的预设的类别拆解为不同的类别代码;按照每一所述类别代码的属性调用对应的编译器对所述类别代码进行编译,对应地得到每一所述类别代码的描述文件;将每一部分的所述类别代码的描述文件进行插件处理,得到所述应用程序,如此,能够解决目前应用程序开发的耗时和费力问题,从而快速便捷的开发应用程序。
附图说明
图1为本发明实施例应用程序开发方法的实现流程示意图;
图2为本发明实施例基类关系图;
图3为本发明实施例文件目录结构与现有目录结构的对比结果示意图;
图4-1为本发明实施例输入文件的编译过程示意图;
图4-2为本发明实施例组件的编译过程示意图;
图4-3为本发明实施例广播事件的传递流程示意图;
图4-4为本发明实施例冒泡事件的传递流程示意图;
图4-5为本发明实施例应用程序开发工具的应用示意图;
图5为本发明实施例应用程序开发工具的组成结构示意图;
图6为本发明实施例应用程序开发设备的组成结构示意图;
图7为本发明实施例中计算设备的一种硬件实体示意图。
具体实施方式
小程序(mini program),例如微信小程序,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。目前用户在做小程序开发时会遇到以下问题:
1)目前小程序中没有组件化的概念,只能通过模块化和模板去实现的伪组件化,伪组件化的缺陷在于复用成本高,而且伪组件相互之间没有隔离;由于组件之间没有隔离,所以在修改某一组件的时候可能会导致其他具有依赖关系(关联关系)的组件不可用,本发明实施例基于隔离的组件提供的一种小程序开发方法或工具。
2)目前在开发小程序的时候无法自动使用海量的外部资源,例如第三方节点包管理器(NPM,Node Package Manager)资源,原因在于,一般的NPM资源是针对传统的web页面开发的,而小程序本身与传统的web页面是不一样的,所以导致无法直接使用;如果开发者想要使用NPM资源,只能通过手动下载和手动拷贝的方式使用NPM上的代码;对于依赖复杂的NPM资源,手动下载和手动拷贝的方式就无能为力了。本发明实施例中,将自动处理NPM资源之间的依赖关系(以关联信息体现的关联关系),然后在编译过程中,自动处资源之间依赖关系并且拷贝文件,解决了目前小程序开发过程中无法引入第三方的NPM资源的问题。
3)小程序每一部分内容都有好几份文件,例如应用部分对应有三种文件,而应用部分对应有四种文件,而小程序中的页面部分一般包括多个页面,例如某一小程序包括5个页面,而每一页面都对应有四种文件,那么开发目录中的页面部分将包括20个文件,所以,文件过多会导致代码目录结构混乱,本实施例中通过组件模式将每一页面仅对应于一个预定格式的文件,这样从效果上看,原来每一页面的四种文件被打包在一起,可以避免代码目录结构混乱的问题。另外,小程序开发不能像传统Web开发一样,引入一些新的特性或是规范。本方案通过编译可以解决这个问题。
为了更好地理解本发明以下的各实施例,这里对部分名词解释如下:
web:是一种访问网络上信息资源的协议和标准的集成,即web是在网络上提供的一种服务。
模块:web开发中,将逻辑代码封装一个个单独集合。
组件:web开发中,将超级文本标记语言(HMTL,Hyper Text Markup Language)4和HTML 5页面元素样式与逻辑封装成一个单独的集合。
NPM资源:由其他人开发并共享的模块资源,NPM常称为节点(node)包管理器,顾名思义,NPM的主要功能就是管理node包,其中管理包括:安装、卸载、更新、查看、搜索、发布等。
小程序的应用部分和小程序的页面部分:小程序一般至少包括应用部分和页面部分,其中应用部分一般可以包括两种文件或三种文件,两种文件为app.json和app.js,三种文件分别为app.json、app.js和app.wxss;页面部分一般包括三种或四种文件,三种文件为index.json、index.js和index.wxss,这四种文件分别为index.json、index.js、index.wxml和index.wxss。需要说明的是,.json可以嵌套在.js中,即在分类中可以将.json不单独拆分出来,而是归纳在.js中这样,应用部分拆分的三种文件即为两种文件app.js和app.wxss,页面部分拆分的三种或四种文件分别对应为两种或三种。其中,.js表示逻辑代码,.json表示配置代码,json采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。
.wxss表示样式表代码,其中wxss表示微信样式表(WeiXin Style Sheets)wxss是一套样式语言,用于描述微信标记语言的组件样式,即wxss用来决定WXML的组件应该怎么显示。为了适应广大的前端开发者,wxss具有层叠样式表(CSS,Cascading Style Sheets)大部分特性,同时为了更适合开发微信小程序,wxss对CSS进行了扩充以及修改,例如wxss与CSS相比,扩展的特性有尺寸单位和样式导入。
CSS,是一种用来表现标准通用标记语言的一个应用或XML(标准通用标记语言的一个子集等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。CSS能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,例如,CSS可以扩展HTML的显示功能,可以把原来的HTML文件,像是文字的颜色、字体、大小、宽度、边界和对齐都可以去设定,CSS可以轻松而又有效地对页面的整体布局、字体、颜色、链接和背景进行更加精确的控制。
.wxml表示结构代码,wxml是微信标记语言(WeiXin Markup Language)的缩写,wxml是基于网络应用程序框架(Apache MINA)框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。
基于以上概念,在本发明的各实施例中,将输入文件拆解为样式、页面元素、逻辑功能、配置,然后再通过编译手段将组件拆分为小程序所需要的wxml、wxss、js、json文件,同时在编译过程中自动识别组件完成组件之间的隔离工作。
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
为了解决背景技术中存在的问题,本发明实施例提供一种应用程序开发方法,应用于计算设备,该应用程序开发方法所实现的功能可以通过计算设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该计算设备至少包括处理器和存储介质。
图1为本发明实施例应用程序开发方法的实现流程示意图,如图1所示,该方法包括:
步骤S101,获取预定格式的输入文件,所述输入文件中包括用于组成所述小程序各部分的内容代码;
本实施例中,所述小程序可以为应用于一母体应用程序上的子体应用程序。
本实施例中,所述输入文件可以是用户手动编写的代码,也可以是自动生成的代码,其中手动编写的代码包括用户一行一行写的出来的代码,还包括用户从第三方的外部资源例如NPM资源上通过手动下载和手动拷贝的方式得到的NPM上的代码。
本实施例中,预定格式可以是本领域的技术人员自行设定的格式,例如de格式或者wpy或者其他格式,需要说明的是,由于输入文件需要被拆解为小程序每一部分的内容代码所对应的文件类型,那么在设定格式的时候还需要考虑拆解的便利性和难度,作为一种降低拆解难度以及提供便利性的预设格式,可以采用wpy格式,即输入文件为wpy格式的。
本实施例中,小程序至少包括应用部分和页面部分,那么输入文件中至少包括应用部分的内容代码和页面部分的内容代码。
步骤S102,将所述输入文件中的每一部分的内容代码按照对应的预设的类别拆解为不同的类别代码;
本实施例中,如前所述,小程序的每一部分都对应有几种文件,例如应用部分包括三种文件,这三种文件分别为app.json、app.js和app.wxss,页面部分一般包括四种文件,这四种文件分别为index.json、index.js、index.wxml和index.wxss。那么在步骤S102中需要将小程序的应用部分拆解为三种不同的类别代码,即这三种类别代码可以分别对应为app.json、app.js和app.wxss,将页面部分拆解为四种不同的类别代码,即这四种类别代码可以分别对应为index.json、index.js、index.wxml和index.wxss。
步骤S103,按照每一所述类别代码的属性调用对应的编译器对所述类别代码进行编译,对应地得到每一所述类别代码的描述文件;
本实施例中,针对不同的类别代码调用对应的编译器对类别代码进行编译,然后得到该类别代码的描述文件,例如,四种类别代码分别对应的编译器为第一、第二和第三编译器集合,那么对类别代码.json进行编译时,可以利用第一编译器集合中编译器对对类别代码.json进行编译,得到小程序的描述文件.json。
步骤S104,将每一部分的所述类别代码的描述文件进行插件处理,得到所述小程序。
本实施例中,插件处理的效果是对文件的内容进行了处理,所以内容上有变化,而文件的个数和后缀、格式是没有变化。插件处理一般包括文件压缩、代码中变量的替换,内容混淆、图片压缩、图片清晰度的改变和图片尺寸的改变等等。。
在本发明的其他实施例中,所述输入文件至少包括应用部分的内容代码和页面部分的内容代码,步骤S102,所述将所述输入文件中的每一部分的内容代码按照对应的预设的类别拆解为不同的类别代码,包括:
对于应用部分的内容代码来说,将所述应用部分的内容代码至少拆解为脚本代码;对于页面部分的内容代码来说,将所述页面部分中的每一页面的内容代码至少拆解为样式代码、页面元素代码和脚本代码。
本发明实施例中,为了降低拆解难度,在拆解的时候采用分层次进行拆解,第一层次拆解时,先将配置代码和逻辑代码拆解为一个整体,然后,第二层次拆解时,再将逻辑代码和配置代码拆解开,即第一层次的拆解中可以将配置代码不单独拆分出来,而是归纳在逻辑代码中;这样,在最简单的拆解过程中,应用部分只拆解为逻辑代码,即只对应一种描述文件(.js),而页面部分可以拆解为样式代码、页面元素代码和脚本代码,即对应有三种描述文件.js、.wxml和.wxss。
在本发明的其他实施例中,所述按照每一所述类别代码的属性调用对应的编译器对所述类别代码进行编译,对应地生成每一所述类别代码的描述文件,包括:调用分别与样式代码、页面元素代码、逻辑代码和配置代码调用对应的编译器,分别对应地对每一页面的所述样式代码、页面元素代码、逻辑代码和配置代码进行编译,分别对应地得到每一页面的样式表文件、页面结构文件、逻辑文件和配置文件。
例如,调用预设的第一编译器集合中的编译器对所述样式代码进行编译,生成样式表的描述文件;调用预设的第二编译器集合中的编译器对所述页面元素代码进行编译,生成页面结构的描述文件;调用预设的第三编译器集合中的编译器对所述逻辑代码进行编译,生成逻辑的描述文件。其中,第一编译器集合包括css、less、sass、stylus等编译器,第二编译器集合包括wxml、pug等编译器,第三编译器集合包括babel、typescript等编译器。一般来说,配置代码是不需要进行编译的,所以无需对应的编译器。
为了解决目前在开发小程序的时候无法自动使用海量的外部资源问题:例如第三方NPM资源,原因在于,一般的NPM资源是针对传统的web页面开发的,而小程序本身与传统的web页面是不一样的,所以导致无法直接使用;如果开发者想要使用NPM资源,只能通过手动下载和手动拷贝的方式使用NPM上的代码;对于依赖复杂的NPM资源,手动下载和手动拷贝的方式就无能为力了。本发明实施例中,将从两方面进行改善,第一方面是自动从外部资源上获取内容代码,第二方面是将自动处理NPM资源之间的依赖关系(以关联信息体现的关联关系),然后在编译过程中,自动处资源之间依赖关系并且拷贝文件,解决了目前小程序开发过程中无法引入第三方的NPM资源的问题。
第一方面,在本发明的其他实施例中,步骤S101,所述获取预定格式的输入文件,包括:
步骤S111,根据确定的关键词从资源库检索内容代码,至少加载检索的内容代码;
本实施例中,关键词是用于检索输入文件中的内容代码的,例如关键词可以为实现相册功能、调用全球定位系统(GPS)、调用支付应用、开启摄像头、开启扫码等功能的内容代码,用户输入某种关键词,计算设备就会从资源库中检索该功能对应的内容代码,然后向资源库的远程服务器请求内容代码或向资源库的本地数据库请求内容代码,然后加载检索的内容代码。
本实施例中,资源库可以为节点包管理器资源、本地数据库中的资源。
步骤S112,按照预设格式对所述内容代码进行格式转换,得到预定格式的输入文件。
第二方面,在本发明的其他实施例中,所述方法还包括:
步骤S201,分析所述输入文件中每一部分的内容代码,得到每一部分中各模块之间的关联信息;
步骤S202,确定每一部分中各模块的路径信息;
本实施例中,模块的路径信息一般是指本地的存储路径。
步骤S203,根据每一部分中各模块之间的关联信息和每一部分中各模块的路径信息修改所述输入文件中的路径信息;
步骤S204,对修改后的所述输入文件中的每一部分的内容代码按照对应的预设的类别拆解为不同的类别代码。
本发明实施例中,为了解决目前小程序中没有组件化的概念这一问题:目前小程序只能通过模块化和模板去实现的伪组件化,伪组件化的缺陷在于复用成本高,而且伪组件相互之间没有隔离;由于组件之间没有隔离,所以在修改某一组件的时候可能会导致其他具有依赖关系(关联关系)的组件不可用,本发明实施例基于隔离的组件提供的一种小程序开发方法或工具,即在实施例中的资源库中包括基类组件、基类页面和基类应用三类基类资源,其中,各基类组件之间相互隔离,基类页面继承自组件;对应地,步骤S111,所述根据确定的关键词从资源库检索内容代码,至少加载检索的内容代码,包括:根据确定的关键词从资源库检索基类组件、基类页面和基类应用;至少加载检索的基类组件、基类页面和基类应用;
步骤S112,所述按照预设格式对所述内容代码进行格式转换,得到预定格式的输入文件,包括:将检索的基类组件重组为自定义组件,将检索到的基类页面和用户组件重组为自定义页面,将检索到的基类应用和自定义页面重组为自定义应用;按照预设格式分别对自定义组件、自定义页面和自定义应用进行格式转换,得到预定格式的输入文件。
图2为本发明实施例基类关系图,如图2所示,本发明实施例提供三个基础支持的基类,分别为组件(component)基类、页面(page)基类和应用(app)基类等,其中基于页面也是组件的原则,所以页面基类也是继承自组件基类。在图2中,实心小三角箭头表示继承关系,而空心的菱形表示组成关系,线性箭头表示包括关系。用户定义的组件和页面均继承自这些基类,例如,用户定义的App 208继承自基类app 203,其中包含两个继承自page 202的页面Page1 206、Page2 207。其中Page1 206中又包含两个继承自component 201的组件Com1 204、Com2 205。需要说明的是,由于各基类组件之间相互隔离,那么在基于上述基类而完成的小程序在进行组件间的通信和绑定功能时,也是与通常的小程序不一样的,在下面的实施例中将介绍组件间的通讯和绑定功能。
为了解决目前小程序目录结构混乱的问题:小程序每一部分内容都有好几份文件,例如应用部分对应有三种文件,而应用部分对应有四种文件,而小程序中的页面部分一般包括多个页面所以,文件过多会导致代码目录结构混乱,本实施例中通过组件模式将每一页面仅对应于一个预定格式的文件,这样从效果上看,原来每一页面的四种文件被打包在一起,这样可以避免代码目录结构混乱的问题。本实施例中,所述方法还包括:
步骤S105,将每一页面的内容代码(即代码文件)按照所述预定格式形成输入文件的每一页面。
对于页面部分而言,即将页面部分每一页面仅以一个预设格式的文件来表示。图3为本发明实施例开发文件目录结构与现有的开发目录结构的对比结果示意图,如图3所示,左侧为手机充值小程序使用现有方案的目录结构,右侧为手机充值小程序使用本实施例提供的方案之后的目录结构。从图3的左侧可以看出,页面部分一共包括三个页面(success、list和detail),其中每一页面都包括四个代码文件(.js、.less、.wxml和.wxss),所以左侧的目录看起来比较冗长和混乱。采用本发明实施例提供的技术方案后,success、list和detail这三个页面中每一个页面以预定格式来表示,即形成每一页面success.wpy、list.wpy和detail.wpy;从效果上看,之前的四个代码文件都被打包成一体,打包后的文件为success.wpy、list.wpy和detail.wpy。显然,本发明实施例提供的技术方案能够避免代码目录结构混乱的问题。
一般来说,一个.wpy文件分为三个部分:样式代码<style></style>对应原有wxss,模板代码<template></template>对应原有wxml,脚本代码<script></script>对应原有js和json。其中入口文件app.wpy不需要template,所以编译时会被忽略。这三个标签都支持type和src属性,type决定了其代码编译过程,src决定是否外联代码,存在src属性且有效时,忽略内联代码。
下面介绍一下本发明实施例的输入文件的编译过程,图4-1为本发明实施例输入文件的编译过程示意图,如图4-1所示,输入文件包括页面部分和应用部分(应用部分未示出),页面部分包括三个页面,分别为success、list和detail这三个页面,对应为内容代码分别为success.wpy、list.wpy和detail.wpy,下面以detail.wpy为例进行说明,首先对detail.wpy进行拆解,拆解后得到样式(style)代码、页面元素(template)代码和脚本(script)代码。然后对脚本代码进一步进行拆解为逻辑代码和配置代码。下面分别对样式代码、页面元素代码和脚本代码进行如下的处理:
样式代码会通过配置中的css、less、sass、stylus等编译器进行编译,遍历组件、注入依赖和变量替换,最后生成小程序需要的.wxss文件。其中,遍历组件是为了得到组件之间的关联关系,其中关联关系又称为依赖关系,以关联信息体现;注入依赖是指根据组件之间的关联信息修改组件之间的路径信息,即完成路径信息的变量替换过程。
页面元素代码通过配置中的wxml、pug等编译器进行编译,同时分析页面引用组件之间的依赖关系,从而注入组件的依赖关系和变量替换,然后生成小程序需要的.wxml文件。
脚本代码先进行拆解,得到逻辑代码和配置代码,然后通过配置中的babel、typescript等编译器进行编译,生成小程序需要的detail.js和detail.json。
所有文件都通过配置插件处理生成小程序需要的最终文件。这里需要说明的是,其中,插件处理的效果是对程序的内容进行了处理,所以内容上有变化,而文件的个数和后缀、格式是没有变化,插件处理一般包括文件压缩、代码中变量的替换,内容混淆、图片压缩、图片清晰度的改变和图片尺寸的改变等等。
本发明实施例中,为了实现对NPM资源的利用,在编译过程当中,会递归遍历代码中的require,然后将对应文件从node_modules当中拷贝出来,并且逐一修改各文件的require路径,从而实现对外部NPM包的支持。
输入文件中除了页面部分和应用部分外,还包括组件部分,其中组件编译过程如下:在生成最终文件时,如果依然存在相同命名的方法m,或者是相同命名的数据d,就会导致各模块之间的数据覆盖。因此在组件进行编译时,会逐个组件递归查找下去,为每个组件分配一个以某一预设符号(例如$、#等符号)开头的前缀,同时将组件的所有方法与数据加上组件前缀以确保组件的方法或者数据的唯一命名。如图4-2所示,组件a的m方法会变成$a$m方法,组件b的m方法会变成$b$m方法,组件b的子组件c的m方法会变成$b$c$m方法;因为组件名的唯一的,所以各个组件里面的方法与数据都是独立的,由此来实现组件之前的隔离。
需要说明的是,本实施例中的组件或是页面都以.wpy为后缀,在编译过程当中首先组件或页面会被拆解为三个部分:style、template、script,分别负责样式代码、页面元素代码、逻辑代码三个部分,拆解后的代码可以是预设的任何格式,即样式代码、页面元素代码、逻辑代码后缀可以是设置的。
下面以相册功能为例进行说明,相册包含一个描述整体程序的app和多个描述各自页面的page,程序app主要由三个文件组成,分别是app.js(小程序逻辑)、app.json(小程序设置)和app.wxss(小程序样式表),其中前两个为必备文件。对于页面而言,每个页面下,至少要有.js(页面逻辑)和.wxml(页面结构)两个文件,.wxss(页面样式表)和.json(页面配置)文件为选填。config.js文件中包含了一些部署域名的设置。在pages目录下,有两个page页面,分别是index和album。页面结构算是比较简单的,其中index是小程序启动时默认进入的页面。每个页面下,至少要有.js(页面逻辑)和.wxml(页面结构)两个文件,.wxss(页面样式表)和.json(页面配置)文件为选填。这些文件的文件名与父目录的名称相同,目的是减少配置项,方便开发者。
如前所述,本发明实施例对组件进行隔离化,由于组件与组件之间相互隔离,因此组件与组件之间的通讯要通过以下两种方式广播方式和冒泡方式:
如图4-3和图4-4所示,Index页面引入ComA、ComB和ComC三个组件,同时ComA又有自己的子组件ComD和ComE,ComB又有自己的子组件ComF、ComG和ComH。
$broadcast:参见图4-3,由父组件发起的广播事件,然后通过广度优先搜索算法遍历所有子组件,每个子组件依次响应该事件,例如Index页面的广播顺序为ComA→ComB→ComC→ComD→ComE→ComF→ComG→ComH。即由Index页面发起一个下广播事件后,依次响应该事件的组件是A、B、C、D、E、F、G和H组件。
$emit:参见图4-4,由子组件发起的冒泡事件,单路径向上冒泡,父组件依次接受到该事件,子组件E发起一个冒泡事件,依次响应该事件的流程是ComA和页面Index。
在应用的过程中,参见图4-5所示,本发明实施例提供的技术方案可以以开发工具的形式来体现,开发工具可以发布在计算设备451上(该计算设备作为服务器),想要开发小程序的工程师在自己的终端452上登陆开发工具的发布网址,然后从服务器上下载开发工具,或者直接在网页上运行开发工具453,这样开发工具就按照前述实施例描述的那样生成小程序,生成好的小程序可以经过审核而发布,发布后的小程序454可以到达用户侧,这样用户455可以通过扫一扫、搜一搜等方式使用小程序。
这里,所述计算设备或终端在具体实施例的过程中可以为各种类型的具有信息处理能力的电子设备,例如所述电子设备可以包括手机、平板电脑、台式机、个人数字助理等。
基于前述的实施例,本发明实施例提供一种应用程序开发工具,该应用程序开发工具所包括的各单元,以及各单元所包括的各模块,都可以通过计算设备如计算机、服务器、个人电脑等中的处理器来实现,当然也可通过逻辑电路实现;在实施例的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。
图5为本发明实施例应用程序开发工具的组成结构示意图,如图5所示,所述工具500包括获取单元501、拆解单元502、编译单元503和处理单元504,其中:
所述获取单元501,用于获取预定格式的输入文件,所述输入文件中包括用于组成所述小程序各部分的内容代码;
所述拆解单元502,用于将所述输入文件中的每一部分的内容代码按照对应的预设的类别拆解为不同的类别代码;
所述编译单元503,用于按照每一所述类别代码的属性调用对应的编译器对所述类别代码进行编译,对应地得到每一所述类别代码的描述文件;
所述处理单元504,用于将每一部分的所述类别代码的描述文件进行插件处理,得到所述小程序。
在本发明的其他实施例中,所述输入文件至少包括应用部分的内容代码和页面部分的内容代码,所述拆解单元,用于将所述应用部分的内容代码至少拆解为脚本代码;将所述页面部分中的每一页面的内容代码至少拆解为样式代码、页面元素代码和脚本代码。
在本发明的其他实施例中,所述编译单元,用于调用分别与样式代码、页面元素代码和脚本代码调用对应的编译器,分别对应地对每一页面的所述样式代码、页面元素代码和脚本代码进行编译,分别对应地得到每一页面的样式表文件、页面结构文件和逻辑文件。
在本发明的其他实施例中,所述获取单元包括检索模块、加载模块和转换模块,其中:
所述检索模块,用于根据确定的关键词从资源库检索内容代码;
所述加载模块,用于至少加载检索的内容代码;
所述转换模块,用于按照预设格式对所述内容代码进行格式转换,得到预定格式的输入文件。
在本发明的其他实施例中,所述方法还包括分析单元、确定单元和修改单元,其中:
所述分析单元,用于分析所述输入文件中每一部分的内容代码,得到每一部分中各组件之间的关联信息;
所述确定单元,用于确定每一部分中各组件的路径信息;
所述修改单元,用于根据每一部分中各组件之间的关联信息和每一部分中各组件的路径信息修改所述输入文件中的路径信息;
对应地,所述拆解单元,用于对修改后的所述输入文件中的每一部分的内容代码按照对应的预设的类别拆解为不同的类别代码。
在本发明的其他实施例中,所述资源库中包括基类组件、基类页面和基类应用三类基类资源,其中,各基类组件之间相互隔离,基类页面继承自组件;
所述根据确定的关键词从资源库检索内容代码,至少加载检索的内容代码,包括:
所述检索模块,用于根据确定的关键词从资源库检索基类组件、基类页面和基类应用;
所述加载模块,用于至少加载检索的基类组件、基类页面和基类应用;
所述转换模块,用于将检索的基类组件重组为自定义组件,将检索到的基类页面和用户组件重组为自定义页面,将检索到的基类应用和自定义页面重组为自定义应用;按照预设格式分别对自定义组件、自定义页面和自定义应用进行格式转换,得到预定格式的输入文件。
需要指出的是:以上开发工具实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明开发工具实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。
基于前述的实施例,本发明实施例提供一种小程序开发设备,图6为本发明实施例应用程序开发设备的组成结构示意图,如图6所示,该应用程序开发设备包括存储介质601和处理器602,其中:
存储介质601,配置为存储计算机可执行指令;
处理器602,配置为执行存储的计算机可执行指令,所述计算机可执行指令包括:
获取预定格式的输入文件,所述输入文件中包括用于组成所述小程序各部分的内容代码;
将所述输入文件中的每一部分的内容代码按照对应的预设的类别拆解为不同的类别代码;
按照每一所述类别代码的属性调用对应的编译器对所述类别代码进行编译,对应地得到每一所述类别代码的描述文件;
将每一部分的所述类别代码的描述文件进行插件处理,得到所述小程序。
在实现的过程中,小程序开发设备可以采用计算设备如计算机、服务器、个人电脑等实现,图7为本发明实施例中计算设备的一种硬件实体示意图,该计算设备700的硬件实体包括:处理器701、通信接口702、输入模块703、显示模块704和存储器705,其中
处理器701通常控制计算设备700的总体操作。例如,输入模块703可以实施为触摸屏,向所述处理器701输出表征触摸屏的操作特征(包括触点位置、触点数量、触发压力)的用户操作数据,处理器701可以解析用户操作数据确定用户在显示界面中触发的功能,生成对应触发的功能的显示数据,以供显示模块704加载对应触发的功能的页面。
通信接口702可以使计算设备通过网络与其他终端或服务器通信。
输入模块703可配置为接收输入的字符信息,以及产生与用户设置以及功能控制有关信号输入。其中,输入模块可包括触控表面,该触控表面可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控表面上或在触控表面附近的操作),获取触摸操作带来的信号,将信号转换成触点坐标,再送给处理器701处理,并能接收处理器701发来的命令并加以执行。
显示模块704可以配置为显示处理器701实现的功能以及相关的信息。
存储器705配置为存储由处理器701可执行的指令和应用,还可以缓存待处理器701以及计算设备700中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器705(RAM,RandomAccess Memory)实现。
需要指出的是:以上计算设备实施例项的描述,与上述方法描述是类似的,具有同方法实施例相同的有益效果。对于本发明计算设备实施例中未披露的技术细节,本领域的技术人员请参照本发明方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种应用程序开发方法,其特征在于,所述方法包括:
获取预定格式的输入文件,所述输入文件中包括用于组成所述应用程序各部分的内容代码;
将所述输入文件中的每一部分的内容代码按照对应的预设的类别拆解为不同的类别代码;
按照每一所述类别代码的属性调用对应的编译器对所述类别代码进行编译,对应地得到每一所述类别代码的描述文件;
将每一部分的所述类别代码的描述文件进行插件处理,得到所述应用程序。
2.根据权利要求1所述的方法,其特征在于,所述输入文件至少包括应用部分的内容代码和页面部分的内容代码,所述将所述输入文件中的每一部分的内容代码按照对应的预设的类别拆解为不同的类别代码,包括:
将所述应用部分的内容代码至少拆解为脚本代码;
将所述页面部分中的每一页面的内容代码至少拆解为样式代码、页面元素代码和脚本代码。
3.根据权利要求2所述的方法,其特征在于,所述按照每一所述类别代码的属性调用对应的编译器对所述类别代码进行编译,对应地生成每一所述类别代码的描述文件,包括:
调用分别与样式代码、页面元素代码和脚本代码调用对应的编译器,分别对应地对每一页面的所述样式代码、页面元素代码和脚本代码进行编译,分别对应地得到每一页面的样式表文件、页面结构文件和逻辑文件。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述获取预定格式的输入文件,包括:
根据确定的关键词从资源库检索内容代码,至少加载检索的内容代码;
按照预设格式对所述内容代码进行格式转换,得到预定格式的输入文件。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
分析所述输入文件中每一部分的内容代码,得到每一部分中各组件之间的关联信息;
确定每一部分中各组件的路径信息;
根据每一部分中各组件之间的关联信息和每一部分中各组件的路径信息修改所述输入文件中的路径信息;
对修改后的所述输入文件中的每一部分的内容代码按照对应的预设的类别拆解为不同的类别代码。
6.根据权利要求5所述的方法,其特征在于,所述资源库中包括基类组件、基类页面和基类应用三类基类资源,其中,各基类组件之间相互隔离,基类页面继承自组件;
所述根据确定的关键词从资源库检索内容代码,至少加载检索的内容代码,包括:根据确定的关键词从资源库检索基类组件、基类页面和基类应用;至少加载检索的基类组件、基类页面和基类应用;
所述按照预设格式对所述内容代码进行格式转换,得到预定格式的输入文件,包括:将检索的基类组件重组为自定义组件,将检索到的基类页面和用户组件重组为自定义页面,将检索到的基类应用和自定义页面重组为自定义应用;按照预设格式分别对自定义组件、自定义页面和自定义应用进行格式转换,得到预定格式的输入文件。
7.一种应用程序开发工具,其特征在于,所述工具包括获取单元、拆解单元、编译单元和处理单元,其中:
所述获取单元,用于获取预定格式的输入文件,所述输入文件中包括用于组成所述应用程序各部分的内容代码;
所述拆解单元,用于将所述输入文件中的每一部分的内容代码按照对应的预设的类别拆解为不同的类别代码;
所述编译单元,用于按照每一所述类别代码的属性调用对应的编译器对所述类别代码进行编译,对应地得到每一所述类别代码的描述文件;
所述处理单元,用于将每一部分的所述类别代码的描述文件进行插件处理,得到所述应用程序。
8.根据权利要求7所述的开发工具,其特征在于,所述输入文件至少包括应用部分的内容代码和页面部分的内容代码,所述拆解单元,用于将所述应用部分的内容代码至少拆解为脚本代码;将所述页面部分中的每一页面的内容代码至少拆解为样式代码、页面元素代码和脚本代码。
9.根据权利要求7所述的开发工具,其特征在于,所述编译单元,用于调用分别与样式代码、页面元素代码和脚本代码调用对应的编译器,分别对应地对每一页面的所述样式代码、页面元素代码和脚本代码进行编译,分别对应地得到每一页面的样式表文件、页面结构文件和逻辑文件。
10.一种应用程序开发设备,其特征在于,所述设备包括存储介质和处理器,其中:
存储介质,配置为存储计算机可执行指令;
处理器,配置为执行存储的计算机可执行指令,所述计算机可执行指令包括:
获取预定格式的输入文件,所述输入文件中包括用于组成所述应用程序各部分的内容代码;
将所述输入文件中的每一部分的内容代码按照对应的预设的类别拆解为不同的类别代码;
按照每一所述类别代码的属性调用对应的编译器对所述类别代码进行编译,对应地得到每一所述类别代码的描述文件;
将每一部分的所述类别代码的描述文件进行插件处理,得到所述应用程序。
CN201710193344.2A 2017-03-28 2017-03-28 一种应用程序开发方法及其工具、设备 Active CN106980504B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201710193344.2A CN106980504B (zh) 2017-03-28 2017-03-28 一种应用程序开发方法及其工具、设备
MYPI2019003935A MY198787A (en) 2017-03-28 2018-03-26 Application development method, tool, and device, and storage medium
EP18777281.9A EP3605324B1 (en) 2017-03-28 2018-03-26 Application development method and tool, and storage medium thereof
PCT/CN2018/080564 WO2018177260A1 (zh) 2017-03-28 2018-03-26 一种应用程序开发方法及其工具、设备、存储介质
US16/449,206 US10990367B2 (en) 2017-03-28 2019-06-21 Application development method, tool, and device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710193344.2A CN106980504B (zh) 2017-03-28 2017-03-28 一种应用程序开发方法及其工具、设备

Publications (2)

Publication Number Publication Date
CN106980504A true CN106980504A (zh) 2017-07-25
CN106980504B CN106980504B (zh) 2022-07-01

Family

ID=59339715

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710193344.2A Active CN106980504B (zh) 2017-03-28 2017-03-28 一种应用程序开发方法及其工具、设备

Country Status (5)

Country Link
US (1) US10990367B2 (zh)
EP (1) EP3605324B1 (zh)
CN (1) CN106980504B (zh)
MY (1) MY198787A (zh)
WO (1) WO2018177260A1 (zh)

Cited By (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729002A (zh) * 2017-09-27 2018-02-23 上海斐讯数据通信技术有限公司 源文件压缩装置
CN107943484A (zh) * 2017-11-30 2018-04-20 广州酷狗计算机科技有限公司 执行业务功能的方法和装置
CN108196832A (zh) * 2018-01-09 2018-06-22 安徽小马创意科技股份有限公司 一种实现使微信小程序支持自定义组件式开发的方法
CN108268262A (zh) * 2017-12-27 2018-07-10 广东耐思尼克信息技术有限公司 实现将html转换为微信小程序的方法、装置及系统
CN108446109A (zh) * 2018-02-06 2018-08-24 微梦创科网络科技(中国)有限公司 转换前端模板的方法及系统
CN108491198A (zh) * 2018-04-12 2018-09-04 珠海横琴盛达兆业科技投资有限公司 一种基于微信小程序平台智能搜索的实现方法
CN108536442A (zh) * 2018-04-12 2018-09-14 珠海横琴盛达兆业科技投资有限公司 一种基于微信小程序平台左右结构层级展示及快速加载的药品分类方法
CN108563476A (zh) * 2018-04-18 2018-09-21 Oppo广东移动通信有限公司 应用程序运行方法、装置、存储介质及电子设备
WO2018177260A1 (zh) * 2017-03-28 2018-10-04 腾讯科技(深圳)有限公司 一种应用程序开发方法及其工具、设备、存储介质
CN108664248A (zh) * 2018-05-14 2018-10-16 北京汉能光伏投资有限公司 一种微信小程序的生成方法及装置
CN108681547A (zh) * 2018-03-27 2018-10-19 厦门欣旅通科技有限公司 一种基于小程序的网页内容转换方法及装置
CN109165012A (zh) * 2018-09-17 2019-01-08 北京中电普华信息技术有限公司 一种非解释型微应用实现方法及系统
CN109656558A (zh) * 2018-12-19 2019-04-19 四川虹美智能科技有限公司 一种生成ui插件的方法及装置
CN109739548A (zh) * 2018-12-28 2019-05-10 Oppo广东移动通信有限公司 程序打包方法、程序打包装置及计算机可读存储介质
CN109814778A (zh) * 2018-12-24 2019-05-28 天津字节跳动科技有限公司 小程序选项卡的实现方法、装置、电子设备及介质
CN109960491A (zh) * 2017-12-26 2019-07-02 北京金山云网络技术有限公司 应用程序生成方法、生成装置、电子设备及存储介质
CN110244940A (zh) * 2019-06-12 2019-09-17 四川长虹电器股份有限公司 优化web应用系统开发的方法及web前端项目结构
CN110532029A (zh) * 2019-09-04 2019-12-03 深圳前海微众银行股份有限公司 小程序生成方法、装置、设备及计算机可读存储介质
CN110569050A (zh) * 2019-08-01 2019-12-13 阿里巴巴集团控股有限公司 一种小程序更新方法和装置
CN110727469A (zh) * 2018-06-29 2020-01-24 珠海市魅族科技有限公司 终端设备控制方法及装置、应用程序配置文件的封装方法、终端设备及计算机可读存储介质
CN110888645A (zh) * 2019-10-12 2020-03-17 贝壳技术有限公司 一种转换为小程序的方法、装置和存储介质
CN111078228A (zh) * 2019-12-20 2020-04-28 深圳乐信软件技术有限公司 网页到小程序的转换方法、装置、服务器及存储介质
CN111124420A (zh) * 2019-12-19 2020-05-08 北京百度网讯科技有限公司 编译方法、装置、电子设备及可读存储介质
CN111240654A (zh) * 2020-01-03 2020-06-05 福建天晴在线互动科技有限公司 一种Python代码加固保护的方法及其系统
CN111258586A (zh) * 2020-01-10 2020-06-09 北京小米移动软件有限公司 快应用运行、编译方法、装置、电子设备和存储介质
CN111273909A (zh) * 2018-12-04 2020-06-12 北京京东尚科信息技术有限公司 应用程序管理方法和装置
CN111427569A (zh) * 2019-01-10 2020-07-17 北京嘀嘀无限科技发展有限公司 免安装程序适配方法、装置、电子设备及存储介质
CN111666074A (zh) * 2019-03-05 2020-09-15 华为技术有限公司 一种web应用定制的方法、相关装置及系统
CN112579048A (zh) * 2019-09-30 2021-03-30 腾讯科技(深圳)有限公司 小程序集成方法、装置、电子设备及存储介质
CN113094040A (zh) * 2021-03-08 2021-07-09 南京唯优信息技术有限公司 一种小程序编译方法和装置
CN113220374A (zh) * 2020-01-21 2021-08-06 腾讯科技(深圳)有限公司 软件处理方法和装置
CN113760356A (zh) * 2021-09-10 2021-12-07 北京百度网讯科技有限公司 程序产品的差异化配置方法、装置、设备和介质
CN113760274A (zh) * 2020-09-04 2021-12-07 北京京东振世信息技术有限公司 一种前端组件逻辑注入方法和装置
CN113805895A (zh) * 2021-09-17 2021-12-17 杭州云深科技有限公司 一种数据库中关键词的确定方法、电子设备及存储介质
CN113867699A (zh) * 2021-10-21 2021-12-31 中国工商银行股份有限公司 业务系统的实现方法、装置、设备、介质及程序产品
JP2022505656A (ja) * 2019-04-09 2022-01-14 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 サブアプリケーション開発方法、装置、コンピュータ機器、並びにコンピュータプログラム
CN116954571A (zh) * 2023-09-21 2023-10-27 深圳凡泰极客科技有限责任公司 小程序插件的开发处理方法及装置、计算机可读存储介质

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110727431A (zh) * 2019-09-17 2020-01-24 阿里巴巴集团控股有限公司 小程序生成方法以及装置
CN110908958B (zh) * 2019-11-22 2023-11-24 珠海豹趣科技有限公司 一种文件处理方法、装置、终端及存储介质
CN111026438B (zh) * 2019-11-29 2023-08-04 百度在线网络技术(北京)有限公司 小程序包和页面关键信息的提取方法、装置、设备及介质
CN113094043A (zh) * 2019-12-23 2021-07-09 北京神州泰岳软件股份有限公司 一种页面布局方法、装置和页面开发平台
CN111258583A (zh) * 2020-02-24 2020-06-09 厦门快商通科技股份有限公司 一种实现前端开发多模板支持的脚手架系统
WO2021168711A1 (zh) * 2020-02-26 2021-09-02 深圳市大疆创新科技有限公司 编译控制方法、编译控制装置和存储介质
CN113360201B (zh) * 2020-03-06 2025-02-21 北京沃东天骏信息技术有限公司 计算任务获取方法、装置、存储介质及电子设备
CN113360134B (zh) * 2020-03-06 2022-06-17 武汉斗鱼网络科技有限公司 安全验证程序的生成方法、装置、设备和存储介质
CN111475156B (zh) * 2020-04-13 2024-04-02 北京金堤科技有限公司 页面代码生成方法和装置、电子设备和存储介质
CN111596906B (zh) * 2020-05-18 2023-07-07 上海微盟企业发展有限公司 一种基于MVPVM的Android应用开发方法、装置、设备及介质
CN111596958A (zh) * 2020-05-26 2020-08-28 北京明略软件系统有限公司 一种jar包的关联方法、装置、电子设备及可读存储介质
EP3958115A4 (en) 2020-06-28 2022-05-04 Beijing Baidu Netcom Science Technology Co., Ltd. METHOD AND DEVICE FOR PROCESSING MINIPROGRAM BATCH, ELECTRONIC DEVICE AND READABLE STORAGE MEDIUM
CN111857809B (zh) * 2020-07-30 2024-07-30 上海妙一生物科技有限公司 一种前端开发文件更新方法、装置及电子设备
CN112055062B (zh) * 2020-08-21 2024-04-09 深圳市信锐网科技术有限公司 数据通信方法、装置、设备及可读存储介质
CN112130818A (zh) * 2020-09-15 2020-12-25 北京值得买科技股份有限公司 一种Android自动数据埋点方法
CN113760275A (zh) * 2020-09-16 2021-12-07 北京京东尚科信息技术有限公司 一种生成页面的方法和装置
CN112084747B (zh) * 2020-09-17 2024-02-02 瑞庭网络技术(上海)有限公司 一种资源管理方法、装置、电子设备及存储介质
CN112291238B (zh) * 2020-10-29 2023-01-06 腾讯科技(深圳)有限公司 一种数据通讯方法、装置、设备以及计算机可读存储介质
CN112527292A (zh) * 2020-12-07 2021-03-19 江汉大学 一种基于界面自动生成的方法、存储介质及系统
CN112486490B (zh) * 2020-12-15 2024-03-19 平安银行股份有限公司 前端代码打包方法、装置、电子设备及存储介质
CN112527258A (zh) * 2020-12-16 2021-03-19 平安国际智慧城市科技股份有限公司 页面组件开发方法、系统、终端及计算机可读存储介质
CN112817598B (zh) * 2021-01-13 2024-06-25 浙江华云信息科技有限公司 编译期的代码注入方法
CN112925562B (zh) * 2021-02-19 2024-09-17 京东方科技集团股份有限公司 基于安卓系统的应用生成的方法、装置及存储介质
CN115129806A (zh) * 2021-03-29 2022-09-30 阿里巴巴新加坡控股有限公司 数据处理方法、装置、电子设备及计算机存储介质
US11995889B2 (en) * 2021-04-19 2024-05-28 International Business Machines Corporation Cognitive generation of HTML pages based on video content
CN113254023B (zh) * 2021-05-14 2023-08-11 网易(杭州)网络有限公司 对象读取方法、装置和电子设备
CN113238737A (zh) * 2021-06-15 2021-08-10 挂号网(杭州)科技有限公司 页面打包方法、装置、电子设备及存储介质
CN113391809B (zh) * 2021-06-21 2025-06-13 北京沃东天骏信息技术有限公司 静态资源文件处理方法、装置、电子设备和存储介质
CN113420532B (zh) * 2021-07-02 2025-05-16 北京沃东天骏信息技术有限公司 一种页面文件转化方法、装置、电子设备和存储介质
CN114327432B (zh) * 2021-12-27 2025-07-18 未来电视有限公司 一种应用生成方法、装置、电子设备及存储介质
CN114356454B (zh) * 2022-01-06 2024-06-18 京东科技控股股份有限公司 对账数据处理方法、设备、存储介质及程序产品
CN114637514B (zh) * 2022-03-29 2025-04-22 上海移远通信技术股份有限公司 Sdk的编译方法、装置、终端及存储介质
CN115480745B (zh) * 2022-08-25 2023-10-24 贝壳找房(北京)科技有限公司 基于配置文件的代码生成方法及装置
CN115904578A (zh) * 2022-11-04 2023-04-04 北京百度网讯科技有限公司 一种显示效果切换方法及装置
CN115543342B (zh) * 2022-11-28 2023-03-24 天津华来科技股份有限公司 在编译时替换启动页面的方法、电子设备、存储介质
CN116107543B (zh) * 2022-12-05 2025-09-23 京东方科技集团股份有限公司 一种基于vue工程代码项目的项目变更方法和变更装置
CN116450535B (zh) * 2023-06-20 2023-08-29 中国联合网络通信集团有限公司 子应用调试方法、装置、计算机设备及存储介质
CN117406973B (zh) * 2023-12-13 2024-03-12 上海群之脉信息科技有限公司 一种交互式数据分析的方法及装置
CN117971175B (zh) * 2024-03-28 2024-07-05 杭州昄达网络科技有限公司 一种基于设计稿自适应的应用软件开发方法及电子设备
CN118409740B (zh) * 2024-05-07 2025-07-08 广州虎牙科技有限公司 生成静态资源引入代码的方法、装置、电子设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1983209A (zh) * 2005-12-14 2007-06-20 中兴通讯股份有限公司 一种软件单元测试自动化系统及其方法
CN101836188A (zh) * 2007-10-26 2010-09-15 高通股份有限公司 基于服务器的代码编译
CN102193812A (zh) * 2011-06-03 2011-09-21 深圳市茁壮网络股份有限公司 一种代码编译方法、主机及系统
CN105867993A (zh) * 2016-03-29 2016-08-17 乐视控股(北京)有限公司 一种软件产品编译方法及设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060101385A1 (en) * 2004-10-22 2006-05-11 Gerken Christopher H Method and System for Enabling Roundtrip Code Protection in an Application Generator
CN103870487B (zh) * 2012-12-13 2017-07-25 腾讯科技(深圳)有限公司 网页文件处理方法及移动终端
CN104142830B (zh) * 2014-08-11 2017-06-06 四川效率源信息安全技术股份有限公司 通过脚本插件技术提取智能手机应用数据的方法和装置
CN104714830B (zh) * 2015-04-03 2018-03-30 普元信息技术股份有限公司 基于原生开发语言实现跨平台应用开发的系统及方法
CN106371829B (zh) * 2016-08-24 2019-05-17 北京邮电大学 基于模块化思想的模板框架设计方法及系统
CN106980504B (zh) * 2017-03-28 2022-07-01 腾讯科技(深圳)有限公司 一种应用程序开发方法及其工具、设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1983209A (zh) * 2005-12-14 2007-06-20 中兴通讯股份有限公司 一种软件单元测试自动化系统及其方法
CN101836188A (zh) * 2007-10-26 2010-09-15 高通股份有限公司 基于服务器的代码编译
CN102193812A (zh) * 2011-06-03 2011-09-21 深圳市茁壮网络股份有限公司 一种代码编译方法、主机及系统
CN105867993A (zh) * 2016-03-29 2016-08-17 乐视控股(北京)有限公司 一种软件产品编译方法及设备

Cited By (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018177260A1 (zh) * 2017-03-28 2018-10-04 腾讯科技(深圳)有限公司 一种应用程序开发方法及其工具、设备、存储介质
US10990367B2 (en) 2017-03-28 2021-04-27 Tencent Technology (Shenzhen) Company Limited Application development method, tool, and device, and storage medium
CN107729002A (zh) * 2017-09-27 2018-02-23 上海斐讯数据通信技术有限公司 源文件压缩装置
CN107943484A (zh) * 2017-11-30 2018-04-20 广州酷狗计算机科技有限公司 执行业务功能的方法和装置
CN109960491A (zh) * 2017-12-26 2019-07-02 北京金山云网络技术有限公司 应用程序生成方法、生成装置、电子设备及存储介质
CN108268262A (zh) * 2017-12-27 2018-07-10 广东耐思尼克信息技术有限公司 实现将html转换为微信小程序的方法、装置及系统
CN108196832A (zh) * 2018-01-09 2018-06-22 安徽小马创意科技股份有限公司 一种实现使微信小程序支持自定义组件式开发的方法
CN108446109A (zh) * 2018-02-06 2018-08-24 微梦创科网络科技(中国)有限公司 转换前端模板的方法及系统
CN108681547A (zh) * 2018-03-27 2018-10-19 厦门欣旅通科技有限公司 一种基于小程序的网页内容转换方法及装置
CN108536442A (zh) * 2018-04-12 2018-09-14 珠海横琴盛达兆业科技投资有限公司 一种基于微信小程序平台左右结构层级展示及快速加载的药品分类方法
CN108491198A (zh) * 2018-04-12 2018-09-04 珠海横琴盛达兆业科技投资有限公司 一种基于微信小程序平台智能搜索的实现方法
CN108563476A (zh) * 2018-04-18 2018-09-21 Oppo广东移动通信有限公司 应用程序运行方法、装置、存储介质及电子设备
CN108563476B (zh) * 2018-04-18 2021-03-23 Oppo广东移动通信有限公司 应用程序运行方法、装置、存储介质及电子设备
CN108664248A (zh) * 2018-05-14 2018-10-16 北京汉能光伏投资有限公司 一种微信小程序的生成方法及装置
CN110727469B (zh) * 2018-06-29 2022-08-16 珠海市魅族科技有限公司 终端设备控制方法及装置、应用程序配置文件的封装方法、终端设备及计算机可读存储介质
CN110727469A (zh) * 2018-06-29 2020-01-24 珠海市魅族科技有限公司 终端设备控制方法及装置、应用程序配置文件的封装方法、终端设备及计算机可读存储介质
CN109165012A (zh) * 2018-09-17 2019-01-08 北京中电普华信息技术有限公司 一种非解释型微应用实现方法及系统
CN109165012B (zh) * 2018-09-17 2022-03-15 北京中电普华信息技术有限公司 一种非解释型微应用实现方法及系统
CN111273909A (zh) * 2018-12-04 2020-06-12 北京京东尚科信息技术有限公司 应用程序管理方法和装置
CN109656558A (zh) * 2018-12-19 2019-04-19 四川虹美智能科技有限公司 一种生成ui插件的方法及装置
CN109656558B (zh) * 2018-12-19 2022-04-19 四川虹美智能科技有限公司 一种生成ui插件的方法及装置
CN109814778A (zh) * 2018-12-24 2019-05-28 天津字节跳动科技有限公司 小程序选项卡的实现方法、装置、电子设备及介质
CN109814778B (zh) * 2018-12-24 2020-12-22 天津字节跳动科技有限公司 小程序选项卡的实现方法、装置、电子设备及介质
CN109739548A (zh) * 2018-12-28 2019-05-10 Oppo广东移动通信有限公司 程序打包方法、程序打包装置及计算机可读存储介质
CN109739548B (zh) * 2018-12-28 2022-05-17 Oppo广东移动通信有限公司 程序打包方法、程序打包装置及计算机可读存储介质
CN111427569B (zh) * 2019-01-10 2024-01-23 北京嘀嘀无限科技发展有限公司 免安装程序适配方法、装置、电子设备及存储介质
CN111427569A (zh) * 2019-01-10 2020-07-17 北京嘀嘀无限科技发展有限公司 免安装程序适配方法、装置、电子设备及存储介质
CN111666074B (zh) * 2019-03-05 2024-04-09 华为技术有限公司 一种web应用定制的方法、相关装置及系统
CN111666074A (zh) * 2019-03-05 2020-09-15 华为技术有限公司 一种web应用定制的方法、相关装置及系统
JP2022505656A (ja) * 2019-04-09 2022-01-14 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 サブアプリケーション開発方法、装置、コンピュータ機器、並びにコンピュータプログラム
JP7106001B2 (ja) 2019-04-09 2022-07-25 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 サブアプリケーション開発方法、装置、コンピュータ機器、並びにコンピュータプログラム
CN110244940A (zh) * 2019-06-12 2019-09-17 四川长虹电器股份有限公司 优化web应用系统开发的方法及web前端项目结构
CN110569050A (zh) * 2019-08-01 2019-12-13 阿里巴巴集团控股有限公司 一种小程序更新方法和装置
CN110532029A (zh) * 2019-09-04 2019-12-03 深圳前海微众银行股份有限公司 小程序生成方法、装置、设备及计算机可读存储介质
CN112579048A (zh) * 2019-09-30 2021-03-30 腾讯科技(深圳)有限公司 小程序集成方法、装置、电子设备及存储介质
CN112579048B (zh) * 2019-09-30 2023-09-08 腾讯科技(深圳)有限公司 小程序集成方法、装置、电子设备及存储介质
CN110888645A (zh) * 2019-10-12 2020-03-17 贝壳技术有限公司 一种转换为小程序的方法、装置和存储介质
CN111124420A (zh) * 2019-12-19 2020-05-08 北京百度网讯科技有限公司 编译方法、装置、电子设备及可读存储介质
CN111078228A (zh) * 2019-12-20 2020-04-28 深圳乐信软件技术有限公司 网页到小程序的转换方法、装置、服务器及存储介质
CN111240654B (zh) * 2020-01-03 2023-03-14 福建天晴在线互动科技有限公司 一种Python代码加固保护的方法及其系统
CN111240654A (zh) * 2020-01-03 2020-06-05 福建天晴在线互动科技有限公司 一种Python代码加固保护的方法及其系统
CN111258586A (zh) * 2020-01-10 2020-06-09 北京小米移动软件有限公司 快应用运行、编译方法、装置、电子设备和存储介质
CN111258586B (zh) * 2020-01-10 2023-04-18 北京小米移动软件有限公司 快应用运行、编译方法、装置、电子设备和存储介质
CN113220374A (zh) * 2020-01-21 2021-08-06 腾讯科技(深圳)有限公司 软件处理方法和装置
CN113760274A (zh) * 2020-09-04 2021-12-07 北京京东振世信息技术有限公司 一种前端组件逻辑注入方法和装置
CN113760274B (zh) * 2020-09-04 2023-11-03 北京京东振世信息技术有限公司 一种前端组件逻辑注入方法和装置
CN113094040A (zh) * 2021-03-08 2021-07-09 南京唯优信息技术有限公司 一种小程序编译方法和装置
CN113760356A (zh) * 2021-09-10 2021-12-07 北京百度网讯科技有限公司 程序产品的差异化配置方法、装置、设备和介质
CN113760356B (zh) * 2021-09-10 2024-03-19 北京百度网讯科技有限公司 程序产品的差异化配置方法、装置、设备和介质
CN113805895B (zh) * 2021-09-17 2023-08-18 杭州云深科技有限公司 一种数据库中关键词的确定方法、电子设备及存储介质
CN113805895A (zh) * 2021-09-17 2021-12-17 杭州云深科技有限公司 一种数据库中关键词的确定方法、电子设备及存储介质
CN113867699A (zh) * 2021-10-21 2021-12-31 中国工商银行股份有限公司 业务系统的实现方法、装置、设备、介质及程序产品
CN116954571B (zh) * 2023-09-21 2023-12-22 深圳凡泰极客科技有限责任公司 小程序插件的开发处理方法及装置、计算机可读存储介质
CN116954571A (zh) * 2023-09-21 2023-10-27 深圳凡泰极客科技有限责任公司 小程序插件的开发处理方法及装置、计算机可读存储介质

Also Published As

Publication number Publication date
EP3605324A1 (en) 2020-02-05
MY198787A (en) 2023-09-27
CN106980504B (zh) 2022-07-01
EP3605324A4 (en) 2020-03-11
US10990367B2 (en) 2021-04-27
US20190310835A1 (en) 2019-10-10
EP3605324B1 (en) 2023-09-27
WO2018177260A1 (zh) 2018-10-04

Similar Documents

Publication Publication Date Title
CN106980504B (zh) 一种应用程序开发方法及其工具、设备
CN111026396B (zh) 页面渲染方法、装置、电子设备及存储介质
CN110688232B (zh) 应用程序调用方法、终端设备及计算机可读存储介质
US10216554B2 (en) API notebook tool
CN104641363B (zh) 评估应用兼容性的系统和方法
EP2580677B1 (en) Web site implementation by mapping expression evaluation
Riva Real-World Next. js
CN108647032B (zh) 应用加载方法及装置、计算机装置和计算机可读存储介质
CN114879976A (zh) 版本的环境部署方法、装置及电子设备
US9513762B1 (en) Static content updates
WO2022105563A1 (zh) 索引文件生成方法、终端设备、电子设备及介质
CN112988175A (zh) 跨平台应用安装包的生成方法、装置、介质及电子设备
CN115113898A (zh) 微应用的动态更新方法、装置、计算机设备和存储介质
WO2025194931A1 (zh) 数据处理方法、装置、设备及存储介质
CN116595284B (zh) 网页系统运行方法、装置、设备、存储介质和程序
CN112433741A (zh) 页面处理方法、装置、系统、电子设备及存储介质
CN118192965A (zh) 页面组件处理方法、装置、计算机设备、存储介质和产品
Chapman Java for engineers and scientists
CN117614943A (zh) 互联网应用管理方法及系统
Kok Hands-on Nuxt. js Web Development: Build universal and static-generated Vue. js applications using Nuxt. js
CN117931213A (zh) 前端应用部署方法、装置、设备及存储介质
WO2024221415A1 (zh) 一种页面渲染方法、装置、设备及存储介质
US20150277723A1 (en) Exporting a component of a currently displayed user interface to a development system
CN115269090A (zh) 营销页面的生成方法、装置、终端及存储介质
CN115687815A (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