CN103814371A - Web浏览器中的Web应用和辅助设备的模拟、Web应用开发工具以及使用它们的方法 - Google Patents
Web浏览器中的Web应用和辅助设备的模拟、Web应用开发工具以及使用它们的方法 Download PDFInfo
- Publication number
- CN103814371A CN103814371A CN201280046903.2A CN201280046903A CN103814371A CN 103814371 A CN103814371 A CN 103814371A CN 201280046903 A CN201280046903 A CN 201280046903A CN 103814371 A CN103814371 A CN 103814371A
- Authority
- CN
- China
- Prior art keywords
- scalar
- simulation
- target device
- display
- web application
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
-
- 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
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/045—Zooming at least part of an image, i.e. enlarging it or shrinking it
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/02—Networking aspects
- G09G2370/022—Centralised management of display operation, e.g. in a server instead of locally
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2380/00—Specific applications
- G09G2380/14—Electronic books and readers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
公开设备模拟器和使用设备模拟器的方法。在一些实施例中,设备模拟器能够允许模拟的显示器与目标设备的显示器之间的精确像素对像素和英寸对英寸映射。还公开利用此类模拟器的Web应用开发工具。在一些实施例中,此类Web应用开发工具提供将电子文档源文件转换成用于多种操作系统和形状因素的交互式文档Web应用的便利方法。
Description
发明领域
本公开一般涉及用于多个操作系统和形状因素(form factor)的设备模拟和Web应用开发。
背景技术
Web应用是在浏览器控制的环境(例如,Java applet)中托管的计算机软件应用,或以浏览器支持的语言,例如JavaScript、超文本标记语言(HTML)等编码的计算机软件应用。此类应用流行,是因为Web浏览器的广泛及跨平台使用。实际上,Web浏览器频繁地在许多流行操作系统(“OS”或“多种OS”)中使用,例如,Microsoft?公司售卖的Windows? OS sold by Microsoft?、苹果公司售卖的MAC OS?和Google?公司售卖的Android? OS。它们可以在落在范围广泛的形状因素内的设备中使用,例如桌上型计算机、膝上型上计算机、平板个人计算机(“PC”或“多个PC”)以及手持设备(例如,移动电话、智能电话等)。
使用创作工具不断地开发着Web应用,这些创作工具本身为Web应用,即在Web浏览器中托管。常常地,此类创作工具采用设备模拟器的形式,设备模拟器在开发系统上运行的Web浏览器中显示。设备模拟器包括目标设备(例如,移动电话、台式计算机等)的屏的一个或多个图像。开发中的Web应用显示在目标设备的屏的图像内。以此方式,模拟器允许开发人员在目标设备屏的上下文中预览开发中的Web应用。
为了设备模拟器精确地表示Web应用将如何在目标设备上展示,需要能够实现两种类型的映射。首先,设备模拟器必须能够像素对像素映射,其中设备模拟器中模拟的显示器(下文称为“模拟的显示器”)的一个像素关联到目标设备的显示器(下文称为“目标显示器”)上的一个像素。其次,需要英寸对英寸(即物理)映射,其中模拟的显示器的一个英寸关联到目标显示器的一个英寸。
虽然现有创作工具是有用的,但是它们无法实现精确的英寸对英寸映射。这是因为该事实,即精确的英寸对英寸映射需要有关模拟的显示器的每英寸像素的数量(PPI)的信息,或换言之,需要有关正在运行设备模拟器的开发系统的显示器的PPI信息。在许多实例中,模拟的显示器的PPI是未知的。无论如何,将开发显示器的PPI映射到目标显示器的PPI可能是困难的,即使开发显示器的PPI是已知的也是这样。
此外,现有的Web应用开发工具不提供用于同时将电子文档(如e-book)转换成同时用于多种OS和/或形状因素的交互式文档应用的直接简单机制。相反,现有Web应用开发工具一般需要应用开发人员使用不同的工具来生成用于各个OS的应用。这种过程可能繁琐且不方便,并且可能产生OS之间和/或形状因素之间的用户接口不方便的交互式文档应用。而且,用于将文档转换成交互式文档应用的许多现有实用工具不会调整页面布局以将不同平台之间分辨率和屏幕朝向的变化纳入考虑。因此,使用现有工具开发的交互式文档应用的用户可能不得不前后翻滚来阅读文档的单个页面,这不是用户所期望的。
附图说明
图1提供根据本公开的非限制实施例的设备模拟器的软件组件的框图。
图2是根据本公开的非限制实施例的实时地调整目标设备的由设备模拟器呈示的模拟的显示器的缩放的非限制方法的流程图。
图3提供能够在多种Web浏览器(例如,Internet Explorer、Firefox和Chrome)中实时地精确放大/缩小托管框架(iframe)的JavaScript伪代码的非限制示例。
图4是本公开的Web应用开发工具的一个或多个方面可基于的模型、视图、控制(MVC)体系结构模式的示范框图。
图5是根据本公开的非限制实施例的用于Web应用开发工具的顶层体系结构和工作流程图。
图6是根据本公开的非限制实施例的交互式文档Web应用的体系结构图。
图7是根据本公开的非限制实施例的编译器服务产生的原生应用的体系结构图。
图8提供根据本公开的用户界面的非限制示例。
图9是根据本公开的非限制实施例的基于Web的用户界面的体系结构图。
图10是根据本公开的非限制实施例的转换服务的体系结构图。
图11是根据本公开的Web应用开发工具的非限制示例的类图。
图12是根据本公开的非限制实施例的方法和流程图。
具体实施方式
本公开的一个方面涉及用于精确地模拟目标设备的显示器的系统和方法。相应地,本文描述的是包括处理器和其上存储设备模拟器指令的存储器的系统。当被执行时,设备模拟器指令可以使处理器执行多种功能。例如,设备模拟器指令可以使处理器在Web浏览器内生成用户界面,其中该用户界面包括至少一个托管框架和至少一个标量。在一些实施例中,目标设备的模拟可以在托管框架中运行,其中目标设备包括至少一个显示器。
设备模拟器指令在被执行时还可以工作以使处理器将所述标量的位置转化成缩放比率,并将该缩放比率应用于托管框架。在一些非限制实施例中,标量的至少一个第一位置可以关联到能够实现至少一个托管框架与目标设备的显示器之间的英寸对英寸映射的缩放比率。在又一些非限制实施例中,标量的至少一个第二位置可以关联到能够实现至少一个托管框架与目标设备的显示器之间的像素对像素映射的缩放比率。
本文还描述用于模拟目标设备的方法。这些方法可以包括例如生成浏览器执行的在Web浏览器中的目标设备的模拟,并基于由标量位置确定的缩放比率来改变模拟的尺寸。在本文描述的方法的一些非限制实施例中,标量的至少一个第一位置关联到能够实现所述模拟与所述目标设备的显示器之间的英寸对英寸映射的缩放比率。在本文描述的方法的又一些非限制实施例中,标量的至少一个第二位置关联到能够实现所述至少一个托管框架与所述目标设备的显示器之间的像素对像素映射的缩放比率。
在一些实施例中,本文描述的方法包括在处理器执行的Web浏览器内显示用户界面。该用户接口可以包括呈现层和呈示层。呈现层可以包括HTML代码,以及呈示层可以包括JavaScript代码。在一些实施例中,该方法包括在呈现层内执行目标设备的模拟,其中目标设备包括至少一个显示器。该方法还可以包括利用所述呈示层检测标量的位置,利用呈示层将标量的位置转换成缩放比率,并将缩放比率应用于模拟。在一些非限制实施例中,标量的至少一个第一位置关联到能够实现所述模拟与目标设备的至少一个显示器之间的英寸对英寸映射的缩放比率。在又一些非限制实施例中,标量的至少一个第二位置关联到能够实现至少一个托管框架与目标设备的至少一个显示器之间的像素对像素映射的缩放比率。
本公开的一个方面涉及用于实现目标设备(例如,移动电话)的浏览器托管的模拟中的精确英寸对英寸映射的系统和方法。在一些实施例中,本公开的系统和方法能够实现目标设备与目标设备的浏览器托管的模拟之间的精确英寸对英寸映射,同时还提供用于切换到模拟与目标设备之间的精确像素对像素映射的简单机制。
相应地,本文描述的是作为Web应用在计算设备的处理器上运行的设备模拟器。一般,本文描述的设备模拟器使用户界面(UI)能够在计算设备上运行的Web浏览器中显示。该UI包括至少一个设备模拟器预览区(本文中也称为“托管框架”),该至少一个设备模拟器预览区配置成模拟目标设备,例如移动电话、平板PC、膝上型计算机等的显示器。例如电子书的交互式文档Web应用可以在至少一个托管框架内运行和显示。以此方式,本公开的设备模拟器可以使用户(例如,软件开发人员)能够在模拟目标设备显示器的环境中实现交互式文档Web应用的操作和外观可视化。
除了上文描述的基本元素和功能外,本文描述的设备模拟器还可以包括紧邻至少一个托管框架或以其他方式与之相邻的至少一个设备框架。此类设备框架可以显示图像,例如目标设备的屏的图像。在此类实例中,可以将设备框架分布在托管框架周围,从而增强托管框架内执行的Web应用的模拟的操作和外观。
本文描述的设备模拟器还可以包括用于调整至少一个托管框架的属性的机制。例如,本文描述的设备模拟器的UI可以包括允许选择目标设备类型、分辨率和朝向的元素和底层代码。例如,本文描述的设备模拟器可以包括包含有关多个目标设备和形状因素例如,移动电话、平板PC、智能电话和膝上型计算机的数据的源文件。一旦选择了特定设备或属性(例如,分辨率和/或朝向),则本公开的设备模拟器可以使用调整的属性来调整托管框架的相关特性并再次呈示托管框架中运行的交互式文档Web应用。
例如,如果用户通过UI选择不同的分辨率,则本文描述的设备模拟器可以工作以调整托管框架的分辨率,并利用新选择的分辨率来再次呈示托管框架(和其中运行的Web应用)和/或一个或多个设备框架。相似地,如果通过UI更改了设备类型,则本文描述的设备模拟器可以加载与所选设备相关的数据(例如,屏成像、分辨率、朝向等),并利用与所选设备关联的特性再次呈示托管框架和/或一个或多个设备框架。
UI还可以包括标量,该标量与标量代码(稍后描述)组合使用户能够改变至少一个托管框架和/或一个或多个设备框架的尺寸。例如,可以由标量代码将标量的位置转换成缩放比率,然后可以将缩放比率应用于至少一个托管框架和/或一个或多个设备框架的缩放属性。正如稍后详细描述的,此功能性能够实现至少一个托管框架中模拟的显示器与目标设备(例如,移动电话、平板PC等)的显示器之间的精确英寸对英寸映射。以及在一些实施例中,此功能性能够提供一种高效机制以用于托管框架与目标设备的显示器之间的精确英寸对英寸映射与像素对像素映射的转换。
对于本公开来说,在标量的上下文中使用时,术语“位置”是指标量的实际位置(例如,相对于标量的另一个部分)和可归因于标量的位置的值的其中之一或二者兼有。例如,如果标量是具有可以在一定值范围(例如0至100)上左向右行进的臂部的滑块,则滑块的“位置”可以是指滑块臂部的相对位置,和/或可归因于滑块位于该位置处的值(例如,0、25、50、100等)。
图1提供根据本公开的设备模拟器的软件组件的非限制示例的框图。正如先前解释,设备模拟器可以在开发系统,例如桌上型PC的处理器上运行的Web浏览器内执行。
如图1所示,设备模拟器100包括呈现层101和呈示层102。呈现层101(本文在模型、视图、控制体系结构的上下文中也称为“视图“)包括一般运行以在开发系统的处理器上运行的Web浏览器中绘制用户界面的功能的底层代码。在图1所示的非限制示例中,呈现层101绘制预览区103、托管框架104、一个或多个设备框架105和标量106。结合Web应用开发工具的UI的产生,稍后描述呈现层101的具体操作,该web应用开发工具利用本文描述的设备模拟器以帮助产生交互式文档Web应用。为了当前论述,应该注意,可以使用HTML将呈现层101编码,并且呈现层101可以包括与本领域技术人员认识相符的多种插件。例如,以及正如下文将详细描述的,呈现层101可以包括index.html文件(或其他类似文件),该文件包含对第三方插件应用和/或数据库,例如jQuery javascript滑块插件和关联数据库的引用。
虽然图1将预览区103图示为比托管框架104大很多,但是应该理解预览区103可以是任何大小。在一些实施例中,将预览区103的大小设为使得它至少逼近托管框架104的一个尺寸。
可以将预览区103再划分(例如,使用HTML)成多个列和行,从而定义分开的区域或框架。此概念在图1中由虚线107图示,其图示预览区103被划分成三个行和三个列,从而将预览区103划分成围绕着托管框架104的8个区域(例如,8个设备框架105)。根据先前论述,可以独立地将预览区103(包括一个或多个设备框架105)的每个区域(框架)编码,以便显示图像,例如目标设备的屏的图像。稍后图8中图示此概念,这提供其中一个或多个设备框架(一个或多个)显示目标设备的屏的图像的用户界面的非限制示例。
虽然图1图示将预览区划分成围绕单个托管框架104的8个区域,但是应该理解预览区103可以被划分成任何数量的区域,并且可以包含多于一个托管框架。实际上,通过本公开可设想具有含1、2、3、4、5或更多个托管框架的预览区的设备模拟器。通过举例,预览区103可以划分成6个列和三个行,从而能够显示各被8个区域(包括8个设备框架105)围绕的两个托管框架。以此方式,可以同时呈示目标设备的多个模拟。
可以使用HTML、其变体和/或其他适合的代码来将预览区103(包括托管框架104)编码。在使用HTML将预览区103编码的实例中,可以使用例如<iframe> HTML标记来定义托管框架105。
标量106是具有用户可更改的位置范围的用户界面对象。在一些实施例中,标量106以滑块、滑轮、一对放大/缩小按钮、下拉列表和/或一系列单选按钮的形式呈现。作为可以根据本公开使用的适合标量的非限制示例,提到jQuery Ul滑块库和/或插件,其实现在稍后进行描述。
呈示层102工作以将设备模型数据和其他特性应用于托管框架104,在Web浏览器内呈示定制面板(稍后描述)以及利用目标设备的适合属性和/或用户选择的特性呈示托管框架104中运行的Web应用。呈示层102可以通过例如调用包含与目标设备的显示器关联的属性的至少一个源文件来提供此功能性。此类源文件可以包括一个或多个目标设备的信息(例如,设备类型、朝向、分辨率等)。呈示层102可以将目标显示器的属性应用于托管框架104的相关属性。由此,可以在开发系统的Web浏览器内以目标设备的适合属性显示设备模拟器100的托管框架104中运行的Web应用。
呈现层102还可以包括监视标量106的位置的标量代码107。基于标量106的位置,标量代码107可以根据执行设备模拟器100所在的浏览器,确定缩放比率或比例。例如,标量代码可以将标量106的位置转换成在Firefox Web浏览器中使用的比例或在Microsoft Internet Explorer中使用的缩放比率。为了方便和简洁,本文将此转换的结果称为“缩放比率”。
标量代码107可以将确定的缩放比率应用于预览区103、托管框架104、一个或多个设备框架105及其组合,并且利用所确定的缩放比率再次呈示预览区103(包括托管框架104和一个或多个设备框架105)。
标量代码107还可以包括事件处理机,事件处理机响应标量事件将确定的缩放比率应用于预览区103。例如,标量代码107可以在标量106的位置开始改变(“开始”)时,标量106的位置改变(“移动”或“滑动”)时,标量106的位置停止改变(“停止”)时或其组合,将确定的缩放比率应用于预览区103(或其组件)。在一些实施例中,随着标量106的位置变化,标量代码107将确定的缩放比率应用于预览区103(包括设备模拟预览区104和一个或多个框架105,如果存在的话)。在此类实例中,标量代码107可以使呈示层100更新预览区103、托管框架104、一个或多个设备框架105或其组合的缩放比率,以及使用所确定的缩放比率实时地再次呈示一个或多个此类区。
通过适当地调整标量106, 可以调整预览区103、托管框架104、一个或多个设备框架(105)及其组合的大小,以便提供目标设备的模拟的显示器与实际目标设备的精确英寸对英寸映射。这可以通过例如调整标量106以使设备模拟器100呈示开发系统的显示器上的预览区103(以及具体地托管框架104)以使预览区103(以及具体为托管框架104)的大小逼近目标设备的物理大小来实现。以此方式,设备模拟器可以提供所见即所得(WYSWYG)的环境。因此,Web应用能够以与其在目标设备上将展示的相同方式展示在设备模拟器中。
图2是根据本公开的实时地调整目标设备的由设备模拟器呈示的模拟的显示器的缩放的非限制方法的流程图。在开始步骤201中,设备模拟器100可以使用与缺省目标显示器相符的特性在预览区103的托管框架104中呈示Web应用。作为备选,设备模拟器100可以等待目标设备的选择,然后才在预览区103的全部或一部分(包括托管框架104和一个或多个设备框架105)中呈示Web应用。无论开始步骤201中执行的操作如何,在呈示预览区步骤202中,设备模拟器100呈示预览区103。
在呈示预览区103之后,在检测标量位置步骤203中,标量代码107监视标量106的位置。然后在将标量位置转换成缩放比率步骤204中,可以将标量106的位置转换成缩放比率。在将缩放比率应用于设备模拟步骤205中,设备模拟器100然后可以将确定的缩放比率应用于预览区。可以随着标量106被调整,重复步骤202-205。使用此方法,可以更新预览区103(包括托管框架104和/或一个或多个设备框架105),从而允许用户实时地将对预览区103的缩放比率的更改可视化。
在一些实施例中,本文描述的设备模拟器能够产生大小与目标设备的显示器物理大小相差约5%或更小、约2%或更小或甚至约1%或更小的目标设备的模拟的显示器。在一些实施例中,本文描述的设备模拟器能够产生大小等于目标设备的显示器物理大小的目标设备的模拟的显示器。
为了实现英寸对英寸映射,可以手动调整标量106,直到设备模拟器100呈示的模拟的显示器的比较逼近目标设备的物理大小位置。这可以通过例如在开发系统的监视器上呈示模拟的显示器,将目标设备固定到托管系统上,并在调整标量同时以目视方式将模拟的显示器的大小与目标设备的物理大小比较来实现。作为备选,此比较可以自动地进行,例如通过编码成将模拟的显示器的属性与开发显示器的每英寸像素数(点)(PPI)比较的程序来进行。例如,此类程序可以调用包含多个开发显示器的PPI信息的数据库,并将该PPI信息与模拟的显示器,具体为托管框架的相关属性比较。
还可以将标量106配置成使得选定的位置关联到与目标设备的显示器像素对像素映射的设备模拟预览区103、托管框架104、一个或多个设备框架105或其组合的缩放比率。例如,标量106的选定的位置可以关联到设备模拟预览区103、托管框架104、一个或多个设备框架105的100%的缩放比率。在一些非限制实施例中,预览区内的像素的数量大于或等于目标设备的显示器的像素的数量。即,预览区(以及具体为托管框架)的分辨率优选地等于或大于目标设备的显示器的分辨率。在此类实例中,由标量确定的缩放比率可以提供与目标设备的显示器实现像素对像素映射的模拟的显示器。
在一些实例中,预览区的分辨率可以设为低于目标设备的显示器的分辨率。在此类实例中,预览区(以及具体为特定托管框架104)中运行的模拟的显示器可以关联到目标设备的显示器的一部分。尽管如此,使用本文描述的标量,可以确定促成模拟的显示器与目标设备的显示器的对应部分之间的像素对像素映射的缩放比率。
作为可根据本公开使用的标量的非限制示例,提到通过jQuery Ul滑块插件和Javascript库(下文称为“jQuery 插件”)使能的滑块。jQuery插件提供多种滑块选项,包括开发人员可以选择的多种句柄和范围。这些句柄和范围可以由用户例如使用鼠标或键盘来进行选择。
为了图示JQuery UI滑块插件的非限制使用,参考图3。一般,图3提供示范JavaScript伪代码,其使得能够在多种Web浏览器,如Internet Explorer、Firefox和Chrome中实现托管框架(iframe)的实时精确放大/缩小。
在图3所示的非限制示例中,可以通过将如下行添加到定义呈现层101的HTML文档中(例如,index.html中)来包括jQuery库:
然后,在该HTMI文档的body部分中,可以使用“<div>”来提供滑块的定位符,例如:
。
然后可以使用如下语句以指令jQuery库来在适合的定位符处显示滑块,其中范围具有最大值、最小值和缺省值:
当然,还可以使用不同类型的滑块和具有不同范围的滑块。
可以在先前的末尾指定滑块的事件处理机。在图3中的非限制示例中,通过如下定义事件处理机:
这指示事件处理机将拾取滑块的每次移动,并更新预览区,从而响应滑块的每次移动实时地重新绘制预览区(包括托管框架)。但是,正如上文提到的,还可以指定响应其他事件(例如,开始和/或停止事件)重新绘制预览区的事件处理机。
图3中的示范伪代码的其余部分指定滑块位置转换成缩放比率,以及在多种Web浏览器,如Internet Explorer和Chrome中应用该缩放比率。
正如背景技术中提到的,目前的Web应用开发工具未提供应用开发人员同时将如e-book的电子文档转换成用于多种OS和/或形状因素的交互式文档应用的便利方式。相反,现有工具典型地需要应用开发人员使用用于不同OS的不同工具来将电子文档转换成此类交互式文档应用。此过程是耗时的,且可能导致所产生的交互式文档应用的用户的不连贯的体验。而且,现有工具常常未考虑分辨率、屏幕朝向和可能影响跨不同平台和操作系统的阅读体验的其他因素上的差异。
本公开可以通过提供利用本文描述的设备模拟器的集成式开发方法和Web应用开发工具来解决这些问题的其中一个或多个问题。例如,本公开的Web应用开发工具和方法可以提供一种快速地将如e-book的电子文档转换成用于一种或多种OS和形状因素的交互式文档web应用的机制。而且,本文描述的工具和方法能够调整所生成的应用的多种元素,以便将不同目标设备之间在屏幕分辨率、朝向、形状因素等上的差异纳入考虑。
相应地,本公开的另一个方面涉及Web应用开发工具。在一些实施例中,本文描述的Web应用开发工具运行在如下桌上型或膝上型计算机的开发系统的处理器上执行的Web浏览器中。该Web应用开发工具一般包括基于Web的用户界面和转换服务。在一些实施例中,这些Web应用开发工具还包括编译器服务。下文详细地论述这些组件中每个组件的功能和示范配置。
就此而言,参考图4,其提供本公开的Web应用开发工具的一个或多个方面可基于的模型、视图、控制(MVC)体系结构模式的示范框图。在该MVC模式中,响应有关其状态的信息的请求(例如来自视图),和/或响应更改状态的指令(例如,来自控制器),模型401可以管理应用域的行为和数据。在事件驱动的系统中,模型401在关于其状态的信息改变时可以通知观察方(例如视图),以使观察方能够反应。
视图402一般配置成将模型呈示成适于交互的形式,例如用户界面元素。应该理解对于单个模型可以存在多个视图。在此类情况中,每个视图可以用作与另一个视图相同或不同的目的。视图402可以具有与显示器表面(例如,监视器)1:1对应关系,并且可以配置成使得它知道如何对显示器表面进行呈示。
控制器403一般配置成接收(例如,从用户)输入,并通过对模型对象或其他资源的调用来发起对此类输入的响应。例如,控制器403可以从用户接收输入,并指令模型和视图以基于该输入来执行动作。
如上文提到的,本公开的工具和方法可以利用UI和转换服务来将如e-book的电子文档转换成交互式文档Web应用。正如下文详细将详细描述的,UI可以配置成通过例如提供上传或导入实用工具来提供用于源文件的提供的方便机制,该上传或导入实用工具使得源文件能够加载到本公开的Web应用开发工具中。一旦被加载,该转换服务可以将源文件转换成交互式文档Web应用(例如,采用HTML/JavaScript语言),这可以在设备模拟器中运行并对其进行编辑。可选地,基于Web的创作工具可以利用转换服务将交互式文档Web应用打包成适于与范围广泛多种OS和形状因素一起使用的程序包和应用安装器。
出于清晰和简明的目的,本公开着重于将以epub文件格式存储的电子文档转换成交互式文档Web应用。但是,应该理解可以使用以任何适合文件格式存储的电子文档。例如,可以使用以PDF格式、doc格式、docx格式、HTML格式、TXT格式、MOBI格式等存储的文档。
图5提供根据本公开的非限制实施例的示范Web应用开发工具的顶级体系结构和工作流程图。如图所示,Web应用开发工具500包括用户界面501、转换服务502和编译器服务503。操作中,例如通过用户界面501将例如e-book的源文件504加载到Web应用开发工具500中。一旦加载,转换服务502将源文件504转换成交互式文档Web应用505。在用户界面501内运行的设备模拟器(未示出)内生成交互式文档Web应用505的预览。
正如稍后将描述的,交互式文档Web应用505可以包括样式代码(例如,级联样式表)和动态代码(例如JavaScript)。一般,样式代码允许定制交互式文档Web应用501的用户界面。与之相比,动态代码一般执行操作以响应通过Web应用开发工具500的用户界面501进行的输入,动态地调整交互式文档Web应用501的多种元素(例如,其页面布局、朝向等)。
注意,用户界面501可以包括定制代码、模拟器控制代码和项目栏代码,其任何一个均可以用于定制交互式文档Web应用505。例如,通过UI进行的输入可以用于更改交互式文档应用505的用户接口,和/或其分辨率、布局、朝向、字体等。而且,用户接口501可以包括运行以将插件(例如社交插件)插入到交互式文档Web应用501中的元素。响应此类输入,交互式文档Web应用505和/或其预览可以被更新。
一旦完成交互式文档Web应用505的定制,则编译器服务503可以执行操作以将最终定制的交互式文档Web应用打包成适于在多种OS上安装的原生应用。在图5的示范顶层体系结构和工作流程图中图示这一点,其中编译器服务503将交互式电子文档Web应用505打包成分别用于OS1、OS2、OSn的应用安装器5071、5072、507n。编译器服务505可以使用Web工具箱或另一种适合机制将交互式文档Web应用打包成原生应用。
转换服务生成的电子文档Web应用包括使应用能够在设备模拟器中动态地进行编辑的源文件和/或底层代码。例如,电子文档Web应用可以包括动态代码,例如,配置成动态地从其他源文件生成HTML页面的JavaScript引擎。
此外,交互式文档Web应用可以包括布局代码,例如定义电子文档Web应用的用户界面的布局的一个或多个HTML页面。而且,该电子文档Web应用可以包括定义交互式文档Web应用的用户界面的每个组件的外观(例如,色彩方案、按钮形状、图标等)样式代码(例如,级联样式工作表)。交互式文档Web应用还可以包括提供内容表(TOC)以及可选地用作交互式文档web应用的入口的TOC代码(例如,一个或多个HTML文件)。例如,交互式文档Web应用可以包括含有上述源文件中所含的电子文档的每个章节的基本内容的章节代码(例如,一个或多个html文件)。
图6提供根据本公开的交互式文档Web应用的示范体系结构图。如图所示,使用上文描述的MVC体系结构来将交互式文档Web应用601编码。模型602包括动态代码603(例如,JavaScript引擎treesaver.js),动态代码603动态地根据源文件,例如布局代码604(例如,resources.html)、样式代码605(例如,style.ess)、TOC代码606(例如,index.html)和章节代码607(例如,HTML文件)生成HTML页面。
动态代码603(例如,treesaver.js)、布局代码604和/或样式代码605的其中一个或多个可以编码成使得它们在托管浏览器加载TOC代码606(例如,index.html)和/或章节代码607之前加载。这可以使得动态代码603能够使用样式代码605(例如style.ess)中指定的样式(例如样式工作表)以及布局代码604(例如,resources.html)中指定的导航布局在托管浏览器中生成HTML页面。可以在视图608(例如,托管浏览器中)呈示动态代码603生成的HTML页面,其中这些页面可以供用户查看。
动态代码603还可以响应通过控制609进行输入,控制609可以包含在本文描述的Web应用开发工具的用户界面中。因此,例如,控制609可以运行以更改模型602的多个方面,例如移到前一个/下一个章节、前一个/下一个页面或旋转屏幕。动态代码603可以响应此类输入生成HTML页面,从而更新模型602以包含通过控制609输入的更改。然后可以利用响应该输入生成的HTML页面更新视图608,从而使得用户能够查看对交互式文档Web应用的更改。
值得注意的事实是图6中示出的非限制示例中,使用HTML和JavaScript来产生交互式文档Web应用。因此,交互式文档Web应用可以是与平台无关的,因为范围广泛的多种OS和硬件均能够执行HTML和JavaScript。实际上,期望只要目标设备的OS和硬件支持Web浏览,则该目标设备应该能够无困难地执行本公开的交互式文档Web应用。
虽然本文描述的交互式文档Web应用可以是与平台和/或OS无关的,但是可能需要将此类应用打包到适合的安装器中,之后才能可以将它们安装在目标操作系统上。注意,不同的OS可能需要不同类型的安装器。例如,Microsoft Windows?可能需要使用MSI格式的安装器,而另一种OS可以需要另一种格式的安装器。在一些实施例中,本公开的Web应用开发工具可以通过可选编译器服务的使用来解决此问题。
一般,本公开的编译器服务执行操作以将交互式文档Web应用编译成目标OS的最终原生应用,并生成用于目标OS的适合安装器。在要在不同的OS上使用交互式文档Web应用的实例中,编译器服务可以配置成同时或分别地生成用于每种目标OS的原生应用和安装器。
本文公开的编译器服务可以包括预处理代码(例如,图9中的ebulwagsvc.php)和封装代码的一个或多个。预先处理代码可以执行多种功能。例如,预处理代码可以将图标(例如,用户上传的图标)添加到交互式电子文档Web应用中。作为附加或备选,该预处理代码可以将交互式电子文档Web应用压缩到单个文件中,如.zip文件中。以及在一些实施例中,一旦构建了交互式文档Web应用的各个原生应用版本,则预处理代码可以将压缩的文件上传到分发服务器,并且将下载链接呈现给基于Web的UI。
封装代码是运行为将交互式文档Web应用编译成用于多种OS和形状因素的原生应用的服务。可以将封装代码托管在本地或远程位置。例如,封装代码可以是远离运行本文描述的Web应用开发工具的开发系统的托管Web服务的计算机(例如服务器)。
图7提供根据本公开的编译器服务产生的原生应用的体系结构图的非限制示例。如图所示,编译器服务701将交互式文档Web应用封包到交互式文档Web应用程序包702中。此外,编译器服务701可以添加附加的层,例如,Web引擎703、软件开发工具箱(SDK)704和混合封包器705。
交互式文档Web应用程序包702可以包括本文公开的交互式文档Web应用的多种组件。例如,交互式文档Web应用程序包702可以包括动态代码、布局代码、样式代码、章节代码和TOC代码,正如前文描述的。交互式文档Web应用程序包可以采用包含上文论述的多个文件的压缩文件(例如,zip文件)的形式。
Web引擎703可以是与OS无关的引擎,其配置成从交互式电子文档Web应用程序包702中提取交互式电子文档Web应用。此外,Web引擎703可以配置成剖析交互式文档Web应用的底层代码(例如,布局代码(例如,html)、样式代码(例如,CSS)和动态代码(例如,JavaScript)),并将输出呈示到指定的窗口(,例如,混合封包器705指定的窗口)。目前,Web引擎必须对应于每种OS来编译。就此而言,可以跨多种OS工作的Web引擎变得可用,本公开设想了此类Web引擎。
SDK 704可以是OS相关的SDK,并且可以执行多个不同功能。例如,SDK 704可以验证特定用户是否获授权使用最终原生应用。此外,SDK可以执行操作以将最终原生应用置于全屏模式或窗口化模式。当然,这些功能仅是示范性的,并且SDK 704可以提供本领域中公知的其他SDK功能。在本公开的一些实施例中,编译器服务701编译用于每种目标OS的SDK。
混合封包器705可以是为目标OS编译的应用,并且可以用于调用验证和其他协议。例如,混合封包器705可以调用SDK 704以验证用户是否获授权使用最终原生应用。一旦成功验证,则混合封包器705可以加载目标OS的Web引擎703,并将交互式文档Web应用程序包的位置传递到Web引擎703。
无论方法如何,应该理解,编译器服务701执行操作以生成分别用于OS1和OSn的应用安装器7061、706n。这可以通过使用图7所示的示范体系结构图和方法或以另一种方式来实现。
如上文提到的,本公开的Web应用开发工具可以包括用户界面(UI)。正如下文将详细描述的,本公开的UI可以是基于Web的,并且可以允许用户编辑设备模拟器中运行的交互式文档Web应用的多种方面。对交互式文档Web应用所做的编辑可以实时地、周期性地或按变化的间隔被呈示。以此方式,Ul可以允许用户在目标设备的模拟的显示器的上下文中观察对交互式文档Web应用所做更改的效果。
为此,参考图8,其中提供个本公开的UI的非限制示例。如图所示,UI 800包括设备模拟器,该设备模拟器包括设备模拟器预览区801和设备框架802。一般,设备模拟器用作可以预览转换服务生成的交互式文档Web应用的位置。设备框架802一般关联到本文先前描述的设备模拟器的一个或多个设备框架。因此,设备框架802可以执行操作以显示一个或多个图像,如目标设备(例如,移动电话、平板PC等)的屏的图像。设备模拟器预览区801可以关联到本文先前描述的设备模拟器的托管框架。因此,交互式文档Web应用的预览可以在设备模拟器预览区801内运行。
正如图8中进一步图示的,UI 800可以包括其他组件,例如项目栏803、一个或多个模拟器设置面板804和一个或多个定制面板805。一般,项目栏803包含与项目级操作相关的元素。例如,项目栏803可以包括允许用户选择项目类型、创建新项目、制作测试程序包和/或发布现有项目的发行程序包的元素。
模拟器设置面板804一般包括与UI 800内运行的设备模拟器的操作相关的元素。例如,模拟器设置面板804可以包括标量806(例如,滑块),标量806(例如,滑块)可以运行以调整设备模拟器预览区801和/或设备框架802的缩放比率。在一些实施例中,标量806可以能够实现设备模拟器生成的模拟的显示器与目标设备的显示器的像素对像素和英寸对英寸映射,如前文描述的。
除了标量806外,模拟器设置面板804可以包括影响UI 800内执行的设备模拟器中运行的交互式文档Web应用的显示器的其他定制命令。例如,模拟器设置面板可以包括允许更改模拟的设备类型、分辨率、朝向(旋转)等的命令。
定制面板805可以包括改变交互式文档应用的格式、样式和布局的命令。例如,定制面板805可以包括更改交互式文档Web应用的用户界面、应用中的信息的组织、字体等的命令。此外,定制面板805可以包括在交互式文档Web应用内的适合位置处插入插件的命令。例如,定制面板805可以包括在交互式文档Web应用内的适合位置处插入至社交媒体站点(例如,www.facebook.com和www.twitter.com)的链接或插件的命令。正如稍后将要描述的,这可以使用将相关插件代码插入到交互式文档Web应用的源文件中的动态代码来实现。
本公开的基于Web的UI可以使用MVC模式来设计。作为此概念的非限制图示,参考图9,图9提供根据本公开的UI 900的非限制体系结构图。
当选择e-book为项目类型(例如,通过项目栏803)时,UI 900的底层代码可以生成适合的控制器类对象903(例如,eBookController.js)以从其他资源,例如模型类对象904(例如,eBookmodel.js)加载用于所选项目的相关数据和面板。此外,控制器类对象903可以在Web浏览器中呈示相关定制面板。
UI 900的底层代码还可以生成一个或多个附加控制器类对象以从适合的资源加载设备模拟器数据,并呈示UI 900中运行的设备模拟器的设备框架。这在图9的非限制示例中予以示出,其中deviceHelper.js从sharedmodel.js(包含模拟器信息的模型资源)加载设备模拟器数据。
当(例如通过上传、导入或另一种方式)提供如epub文档的源文档时,可以使用转换服务901(例如,图9中的epub2html.php)将该源文件转换成包含布局和样式代码的交互式文档Web应用905,正如上文解释的。例如,epub2html.php服务可以将源文件转换成包括HTML和CSS文件的交互式文档Web应用。一旦完成,控制器类对象903(例如,eBookController.js)可以加载交互式文档Web应用,并将其呈示在设备模拟器预览区中。
当调用如项目栏803、一个或多个模拟器设置面板804和一个或多个定制面板805中包含的那些的命令(例如,单击它们或将其拖放在设备模拟器预览区中)时,控制器类对象903(例如,eBookcontroller.js)可以(例如通过如ebupdatesvc.php的服务)指令转换服务901修改交互式文档Web应用的源文件(例如,如resources.html的布局代码)、如style.css等的样式代码)以包含期望的更改。此外,控制器类对象903可以指令转换服务901在视图902的设备模拟器预览区中重新加载该交互式文档Web应用。一旦对交互式文档应用905的编辑完成,则编译服务(例如ebulgwasvc.php)906可以编译用于多种OS的原生安装器。
根据上文,应该显见到本公开的非限制实施例的转换服务可以执行两个功能。第一,本文描述的转换服务可以执行操作以将电子文档转换成交互式文档Web应用(例如,从epub转换到webapp)。其次,本文描述的转换服务可以执行操作以更新交互式文档Web应用的源文件以包含通过UI所做的任何更改。如图9所示以及上文简要描述,这两个功能可以由相应服务,例如epub2html.php和ebupdatesvc.php来执行。
关于电子文档转换成交互式Web应用,本文描述的转换服务(例如,图9中的epub2html.php)可以使用转换算法从文档源文件提取数据。一般,转换算法包括e-book剖析器和webapp生成器,该e-book剖析器提取电子文档源文件(采用epub或另一种支持的公式)以检索相关的数据,以及webapp生成器创建交互式Web应用的某些源文件。例如,e-book剖析器可以提取与创作者、标题、发行者、章节列表等对应的元数据,以及剖析文档源文件的正文文本和/或图像。Webapp生成器可以通过以e-book剖析器提取的数据(例如元数据和章节列表)填充模板文件(例如,模板TOC.html文件)来创建交互式文档Web应用的TOC代码(例如,TOC.html)。此外,webapp生成器可以通过以提取的正文文本数据和图像来填充章节模板(例如,模板章节html文件)来创建章节代码(例如,单独HTML文件)。
关于更新交互式文档Web应用的源文件以包含通过UI所做的任何更改,转换服务(例如图9的ebupdates.php)可以执行一个或多个功能。例如,转换服务可以执行操作以将社交插件代码插入到交互式文档Web应用的布局代码(例如,resources.html)中的适合位置处。作为备选或附加,转换服务可以执行操作以通过以选定的主题中指定的样式和布局代码来替换或更新样式代码(例如,style.css)和/或布局代码(例如,resources.html)以更改书籍主题。在此类实例中,可以保留或可以不保留社交插件代码。在一些实施例中,保留社交插件代码,即使主题中更改也是如此。由此,应该理解,可以使用转换服务来更新与交互式文档Web应用的布局和外观有关的任何和所有元素,例如字体、字体大小、朝向、分辨率等。
转换服务还可以配置成提供复位选项。当执行时,复位选项可以运行以将交互式文档Web应用的样式和布局代码复位到缺省或预先选择的主题中指定的样式和布局代码。在此类实例中,可以保留或可以不保留社交插件代码(例如,html代码)。在一些实施例中,可以执行复位选项时移除社交插件代码。
图10是根据本公开的转换服务的示范体系结构图。如图所示,可以通过UI 1002或另一种方式将文档源文件1001加载到本公开的基于Web的创作工具中。一旦加载,转换服务1003使用e-book剖析器1004从文档源文件1001提取数据(例如,元数据、正文文本、图像等)。webApp生成器1005应用所提取的信息以生成交互式文档Web应用1006的源文件。
可以在UI 1002中运行的设备模拟器中(例如,使用缺省主题、布局等)生成并显示交互式文档Web应用1006的预览。更新服务1007可以检测通过UI 1002所做的更改,并指令动态代码(例如,如treesaver.js的JavaScript代码)以相应地更新交互式文档Web应用1006的源文件。然后可以刷新UI 1002内运行的交互式文档Web应用1006的预览。
为了清晰,本公开现在将论述根据本公开的电子文档至Web应用的转换算法所执行的工作流程的非限制示例。为了图示,本示例着重于将以epub格式存储的文档源文件转换成交互式文档Web应用。但是,应该理解可以使用以其他格式存储的源文档执行相同或相似的步骤。
在此非限制示例中,转换服务包括e-book剖析器,e-book剖析器将epub格式的源文档文件提取到临时目录。作为初始问题,e-book剖析器可以验证所提取的文件的内容,然后继续下去通过检查从源文档文件提取并存储在临时目录中的XML文件(例如container.xml)以提取元数据。通过此检查,e-book剖析器可以获取rootfile节点的完整路径属性,该完整路径属性是包含epub的元数据、文件清单和线性阅读次序的开放包裹格式(OPF)的路径。
一旦确定OPF文件的路径,则e-book剖析器可以将该OPF文件打开为可扩展标记语言(XML)文件,定位元数据节点,以及制作元数据节点的克隆副本(下文称为“克隆元数据节点”)。e-book剖析器然后可以搜索元数据节点内的特定节点以标识可以在交互式电子文档应用中使用的信息。例如,e-book剖析器可以标识与标题(例如,dc:title)和内容表(例如spin节点)相关的节点。关于内容表,e-book剖析器可以检查TOC属性的spin节点,并搜索清单节点下的所有子节点以获取具有等于TOC属性的id的项。此外,e-book剖析器可以标识可以与导航控制文件(NCX文件)的路径名对应的href属性值。
转换算法可以通过如下方式生成内容表:迭代spin节点下的所有itemref子节点;获取它们的标识值(例如,idref);搜索清单节点下的所有子节点以获取具有等于标识值的标识符的项;获取此类项的href属性值;以及使用href属性作为完整路径名在TOC列表中创建新章节项。
e-book剖析器可以将NCX文件作为XML文件打开,以及检查它以执行若干功能。例如,e-book剖析器可以定位NCX文件中的docTitle节点并获取其文本节点值。在OPF文件中丢失dc:title节点的实例中,可以将此值用作标题。此外,e-book剖析器可以对于docAuthor节点分析NCX文件,并获取文本节点值。此值可以用作书创作者姓名。而且,e-book剖析器可以通过如下操作更新TOC列表:在NCX文件中定位navMap节点;迭代所有navPoint子节点,并获取它们的navLabel/文本节点值。此值可以用作每个章节的标题。e-book剖析器还可以搜索上文描述的TOC列表,并将navLabel/文本节点值作为标题添加到具有与内容节点的src属性相同的完整路径名的任何章节项。否则,可以使用缺省描述符,例如,“第xx部分”作为章节的标题,其中xx是TOC列表中的索引号。
正如上文简要解释的,e-book剖析器可以从电子文档源文件提取正文文本和图像。下文描述提供e-book剖析器和webapp生成器可以如何使用该信息来生成交互式文档Web应用的源文件的非限制示例。
在此非限制示例中,e-book剖析器可以打开上文描述的TOC列表中的每个章节项指定的HTML文件。Webapp生成器可以打开输出章节文件(在输出目录中)以进行编写,以及可以利用模板文件的内容预先填充输出章节文件。在一些实例中,输出章节文件具有与源电子文档文件相同的名称,但是具有HTML扩展名。e-book剖析器还可以定位相关head->title节点,并且webapp生成器可以使用该节点的值作为所关注的章节的标题。如果没有head->title节点可用,则webapp生成器可以使用另一个值作为章节标题,例如,书标题。
web app生成器然后可以将克隆的元数据节点输出到输出章节文件。使用递归函数(例如,convertnodelist()),e-book剖析器可以迭代输入章节文件的<body>部分的所有子节点,并提取正文文本和/或图像。webapp生成器然后可以将正文文本和图像添加到输出章节文件。
递归函数(例如,convertnodelist())可以使用两个自变量:nodeList和parentNode。nodeList自变量是e-book剖析器可以从中读取的输入节点的列表。parentNode自变量是目标输出节点,这是webapp生成器可插入输出的地方。
e-book剖析器可以迭代nodeList自变量中的所有节点,并根据节点类型来执行多种动作。例如,如果节点类型是XML_TEXT_NODE,则e-book剖析器可以从nodeValue提取正文文本,并将该bodyText追加在parentnode下。
如果节点类型是XML_ ELEMENT_NODE,则e-book剖析器可以检查nodeName,并基于nodeName执行不同的动作。例如,如果nodeName是img,则e-book剖析器可以从节点的src属性提取图像的位置,并从临时目录将图像文件复制到输出目录。Webapp生成器然后可以创建img节点,将该img节点的src属性设置为输出目录中的位置,并将图像的宽度和高度属性设置为期望的值。
如果nodeName是div、p、span和/或pre,则webapp生成器可以基于相关的父节点(parent node)的名称来执行功能。例如,如果父节点名称是p或span,或如果没有文本子节点,则webapp生成器可以调用递归函数(例如,convertnodelist()),使用当前节点的所有子节点作为nodeList,并使用当前父节点作为parentNode。否则,webapp生成器可以:创建新p节点;将其追加到parentNode下;调用递归函数(例如,convertnodelist());使用当前节点的所有子节点作为nodeList;以及使用新p节点作为parentNode。
如果nodeName是table、tr、td或svg,则webapp生成器可以调用递归函数(例如,convertnodelist()),使用当前节点的所有子节点作为nodeList,并使用当前parentNode作为parentNode。
如果nodeName是h1、h2、h3、h4、h5、h6、b、l、big、ol、ul、li、d、dt、dd、em、code、strong和/或blockquote,webapp生成器可以:创建具有相同名称的新节点;将其追加到parentNode下;调用递归函数(例如,convertnodelist());使用当前节点的所有子节点作为nodeList;以及使用新节点作为parentNode。
web app生成器还可以使用上文描述的TOC模板(例如,TOC.html)和TOC列表创建交互式文档Web应用的TOC代码(例如,index.html)。例如,web app生成器可以打开输出TOC文件(例如,index.html),并以TOC模板文件的内容预先填充它。TOC模板可以包括标题的节点项(例如,head->title)和创建者的节点项(例如,body->article),可以由webapp生成器利用e-book剖析器提取的相关数据填充它们。在一些实施例中,webapp生成器以书标题的h1节点和创建者的h4节点填充body->article节点。webapp生成器还可以迭代TOC列表(上文描述的)中的所有章节项,并为每个章节项创建节点(例如,h4节点)。然后可以将每个节点的值设置为包括与章节标题对应的文本(可以由e-book剖析器如上文描述的来确定)。还可以在每个章节项节点下添加与每个章节代码的位置关联的超链接。
当完成电子文档至Web应用的转换时,转换服务可以将临时目录中的一个或多个输出文件(例如,index.html)返回到基于Web的UI以用于预览呈示。
图11提供根据本公开的Web应用开发工具的用户接口的类图的非限制示例。可以将此非限制类图中的对象映射到图6的体系结构视图,如图表1所示:
表1
模型 / 类 / 视图 | 示范对象 | 普通功能 |
模型 | Ebookmodel | 加载定制面板的模型数据 |
模型 | Devicemodel | 加载设备模拟器的模型数据 |
模型 | ePub2HTML.php | 将电子文档源文件转换成用于交互式文档Web应用的源文件(例如html) |
模型 | Epubupdatesvc.php | 基于通过UI所做的输入修改交互式文档Web应用的源文件 |
视图 | eBookview.html | 在UI的设备模拟器预览区(托管框架)中呈示设备框架图像和交互式文档Web应用 |
视图 | Workspace | 布局代码(例如,index.html)中的div,其表示进入设备模拟器,包括eBookview.html |
控制 | Webappauthoringtool | Ebookcontroller的基类。可为所有项目类型(例如,e-book、Web应用、视频等)的通用功能定义虚拟应用程序接口。可包括UI的项目栏上的按钮的事件处理机。 |
控制 | eBookcontroller | 可定义本文描述的Web应用开发工具的核控制器。可定义基控制器(例如,packageclick)的实现,应用面板和设备模型数据以呈示面板和设备模拟器,并且可定义调用epubupdatesvc.php的事件处理机 |
控制 | deviceHelper | 可应用设备模型数据以利用选定的设备类型、分辨率和朝向(旋转)的至少其中之一呈示设备模拟器的一个或多个设备框架 |
控制 | eBookhelper | 可以根据事件(例如文档源文件的上传或将文档源文件转换成交互式文档Web应用的完成)将模型(例如,epub2html.php)与视图(例如,ebookview.html)关联。 |
控制 | eBookuploadform.html | 可选类,其可收集用户输入以用于完成的应用到本地或远程编译器服务的提交以便编译至少一个交互式文档Web应用程序包。 |
控制 | Ebulwagsvc.php | 可执行操作以将交互式文档Web应用程序包递交到编译器服务以便生成用于目标OS的应用安装器。 |
图11还标识可在webappauthoringtool对象中为每个对象定义的多种函数,例如+load()和+unload()。此类函数仅是出于说明的目的而提供的,且不应视为限定本公开的范围。正如本领域中将认识到的,可以根据本公开的Web应用开发工具使用包括比图11所示的特定非限制示例更多或更少函数的用户界面。
本公开的另一个方面涉及用于创作交互式文档Web应用并将此类应用编译成用于多种OS和/或形状因素的原生文件的计算机实现的方法。就此而言,参考图12,其中提供个本公开的方法的非限制示例。
在源文件提供步骤1200中,将电子文档源文件(例如,epub、pdf等)提供到根据本公开的Web应用开发工具。可以由用户例如通过先前描述的UI上传或通过另一种方式提供电子文档源文件。
在转换步骤1210中,调用转换服务以从电子文档源文件提取数据。例如,以及如先前描述的,转换服务可以从电子文档源文件中提取元数据、正文文本、图像和其他信息。转换服务可以使用此数据来使用缺省或预先选择的样式生成包含内容表、章节和其他期望的部分的交互式Web应用。
在呈示步骤1200中,根据本公开在设备模拟器中呈示交互式文档Web应用的预览。如上文描述,此预览以缺省或预先选择的样式呈示。之后,可以呈示交互式文档Web应用的预览以包括下面论述的编辑步骤1230期间所做的编辑。
在编辑步骤1230中,可以如上文描述的使用用户界面来编辑交互式文档Web应用的预览。例如,可以更改交互式文档Web应用的分辨率、朝向、样式和格式(例如,字体、字体大小等)。此外,可以将(例如,至社交媒体Web站点的)插件插入到交互式文档Web应用中。
在更新步骤1240中,(例如通过转换服务)更新交互式文档Web应用以包括编辑步骤1230期间输入的更改。然后可以刷新交互式文档Web应用的预览。
一旦不需要进一步编辑,则可以在编译步骤1250中将交互式文档Web应用编译成用于选定的OS和形状因素的交互式Web应用程序包和安装器。最终结果是提供用于选定的平台的安装器,图12中如步骤1260所示。
本公开的另一个方面涉及机器可读介质,该机器可读介质包含用于执行本公开的操作的指令或包含定义本文描述的结构、电路、装置、处理器和/或系统特征的代码或设计数据。例如,本公开设想包括其上存储有指令的机器可读介质的制品,这些指令被处理器执行时,促使处理器执行与本公开的设备模拟器、Web应用开发工具和/或方法相符的操作。
前文描述参考特定的名称(例如,本文描述的文件、服务、函数和对象的名称)和代码。此类名称和代码在本文中仅出于论述目的而提供,并且应视为示范性的。本领域技术人员将理解,可以对本文描述的文件、服务和函数使用任何适合的名称,以及本文描述的多种特征的编码中的变化是可能的。此类变化由本公开设想并并入本文中。
对于本领域技术人员来说,考虑本文公开的本发明的说明书和实施将显见到本公开的其他实施例。说明书理应仅视为示范性的,其中本发明的真实范围和精神由所附权利要求指示。
Claims (20)
1. 一种系统,其包括:
处理器;
其上存储有设备模拟器指令的存储器,其中在被执行时,所述设备模拟器指令促使所述处理器执行如下操作:
在Web浏览器内生成用户界面,所述用户界面包括至少一个托管框架和至少一个标量,所述至少一个托管框架包含其中运行的目标设备的模拟,所述目标设备包括至少一个显示器;
将所述标量的位置转换成缩放比率;以及
将所述缩放比率应用于所述至少一个托管框架;
其中所述标量的至少一个第一位置关联到能够实现所述至少一个托管框架与所述目标设备的所述至少一个显示器之间的英寸对英寸映射的缩放比率。
2. 如权利要求1所述的系统,其中所述标量的至少一个第二位置关联到能够实现所述至少一个托管框架与所述目标设备的所述至少一个显示器的像素对像素映射的缩放比率。
3. 如权利要求1所述的系统,其中所述设备模拟器指令被执行时还促使所述处理器生成与所述至少一个托管框架相邻的多个设备框架。
4. 如权利要求1所述的系统,其中所述多个设备框架包含所述目标设备的屏的图像。
5. 如权利要求1所述的系统,其中所述设备模拟器指令被执行时还促使所述处理器响应与所述标量关联的事件刷新所述至少一个托管框架。
6. 如权利要求5所述的系统,其中与所述标量关联的所述事件选自如下组成的群:开始、停止、移动或其组合。
7. 如权利要求5所述的系统,其中响应与所述标量关联的所述事件,实时地刷新所述至少一个托管框架。
8. 如权利要求1所述的系统,其中所述至少一个第一位置关联到缩放比率,所述缩放比率使得所述至少一个托管框架以与所述目标设备的所述显示器的对应尺寸相差约5%或更小的至少一个尺寸在所述系统的显示器上呈示所述至少一个托管框架。
9. 一种方法,其包括:
在处理器执行的Web浏览器中生成目标设备的模拟,所述目标设备包括至少一个显示器;以及
基于从标量位置确定的缩放比率改变所述模拟的缩放;
其中所述标量的至少一个第一位置关联到能够实现所述模拟与所述目标设备的所述至少一个显示器之间的英寸对英寸映射的缩放比率。
10. 如权利要求9所述的方法,其中所述标量的至少一个第二位置关联到能够实现所述模拟与所述目标设备的所述至少一个显示器之间的像素对像素映射的缩放比率。
11. 如权利要求9所述的方法,还包括:
在所述Web浏览器内的至少一个托管框架内执行所述模拟;以及
在与所述至少一个托管框架相邻的至少一个设备框架中显示所述目标设备的屏的成像。
12. 如权利要求10所述的方法,还包括响应标量事件,刷新所述Web浏览器中的所述模拟。
13. 如权利要求12所述的方法,其中所述标量事件选自如下组成的群:开始、停止、移动或其组合。
14. 如权利要求12所述的方法,其中响应所述标量事件实时地刷新所述模拟。
15. 一种方法,其包括:
在由处理器执行的Web浏览器内显示用户界面,所述用户界面包括呈现层和呈示层,所述呈现层包括超文本标记语言代码,所述呈示层包括JavaScript代码;
在所述呈现层内执行目标设备的模拟,所述目标设备包括至少一个显示器;
用所述呈示层检测标量的位置;
用所述呈示层将所述标量的所述位置转换成缩放比率;以及
将所述缩放比率应用于所述模拟;
其中所述标量的至少一个第一位置关联到能够实现所述模拟与所述目标设备的所述至少一个显示器之间的英寸对英寸映射的缩放比率。
16. 如权利要求15所述的方法,其中所述标量的至少一个第二位置关联到能够实现所述模拟与所述目标设备的所述至少一个显示器之间的像素对像素映射的缩放比率。
17. 如权利要求15所述的方法,还包括:
在所述用户界面内的至少一个托管框架内执行所述模拟;以及
在与所述至少一个托管框架相邻的至少一个设备框架中显示所述目标设备的屏的成像。
18. 如权利要求15所述的方法,还包括:
响应标量事件,用所述呈示层刷新所述模拟。
19. 如权利要求18所述的方法,其中所述标量事件选自开始、停止、移动或其组合。
20. 如权利要求18所述的方法,其中响应所述标量事件实时地刷新所述模拟。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/245,258 US9142192B2 (en) | 2011-09-26 | 2011-09-26 | Simulation of web applications and secondary devices in a web browser, web application development tools, and methods using the same |
US13/245,258 | 2011-09-26 | ||
US13/245258 | 2011-09-26 | ||
PCT/US2012/055713 WO2013048799A1 (en) | 2011-09-26 | 2012-09-17 | Simulation of web applications and secondary devices in a web browser, web application development tools, and methods using the same |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103814371A true CN103814371A (zh) | 2014-05-21 |
CN103814371B CN103814371B (zh) | 2017-06-27 |
Family
ID=47910815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280046903.2A Expired - Fee Related CN103814371B (zh) | 2011-09-26 | 2012-09-17 | Web浏览器中的Web应用和辅助设备的模拟、Web应用开发工具以及使用它们的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9142192B2 (zh) |
EP (1) | EP2761495A4 (zh) |
CN (1) | CN103814371B (zh) |
TW (1) | TWI578220B (zh) |
WO (1) | WO2013048799A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105446796A (zh) * | 2015-11-30 | 2016-03-30 | 金蝶软件(中国)有限公司 | 一种移动轻应用的模拟方法及设备 |
CN105740403A (zh) * | 2016-01-28 | 2016-07-06 | 浪潮通用软件有限公司 | 一种对预览效果进行调整的方法及装置 |
CN109388787A (zh) * | 2017-08-10 | 2019-02-26 | 易易资设有限公司 | 编辑超文件标示语言文件的方法 |
CN111026485A (zh) * | 2019-12-02 | 2020-04-17 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置 |
CN111475163A (zh) * | 2020-06-22 | 2020-07-31 | 腾讯科技(深圳)有限公司 | 视图模板的代码文件生成方法、装置、设备及存储介质 |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130145361A1 (en) * | 2011-12-01 | 2013-06-06 | International Business Machines Corporation | Discovering and installing web application plugins |
WO2013097202A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | Apparatuses and methods for web application converter systems |
US9449126B1 (en) * | 2012-06-01 | 2016-09-20 | Inkling Systems, Inc. | System and method for displaying content according to a target format for presentation on a target presentation device |
US9317513B1 (en) * | 2012-06-27 | 2016-04-19 | Netapp, Inc. | Content database for storing extracted content |
US9355150B1 (en) | 2012-06-27 | 2016-05-31 | Bryan R. Bell | Content database for producing solution documents |
US9519624B1 (en) | 2013-02-05 | 2016-12-13 | Inkling Systems, Inc. | Displaying previews of content items for electronic works in a target rendering environment |
US20140282398A1 (en) * | 2013-03-15 | 2014-09-18 | Wolters Kluwer U.S. Corporation | Platform for developing and distributing mobile applications |
US10268666B2 (en) * | 2013-10-30 | 2019-04-23 | Rockwell Automation Technologies, Inc. | Industrial automation workstation and display method for scaling and displaying text destined for a target industrial automation device |
TWI505098B (zh) * | 2014-01-08 | 2015-10-21 | Service supply node control system | |
TWI507984B (zh) * | 2014-01-15 | 2015-11-11 | Chunghwa Telecom Co Ltd | Web application versioning and loading method |
EP3164798A4 (en) * | 2014-07-03 | 2017-06-07 | Able World International Limited | Method for operating tool in working environment and machine using such method |
US20160103815A1 (en) * | 2014-10-10 | 2016-04-14 | Dicky Suryadi | Generating mobile web browser views for applications |
CN104866313A (zh) * | 2015-05-22 | 2015-08-26 | 国云科技股份有限公司 | 一种通用的jsp上传文件的方法 |
US10157047B2 (en) * | 2015-10-19 | 2018-12-18 | Facebook, Inc. | Methods and systems for communicating application prototype information |
US9870062B2 (en) | 2015-11-11 | 2018-01-16 | Facebook, Inc. | Methods and systems for defining gestures for a user interface |
CN106874323A (zh) | 2016-06-28 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 一种数据存储方法和装置 |
US20180129484A1 (en) * | 2016-11-04 | 2018-05-10 | Microsoft Technology Licensing, Llc | Conversational user interface agent development environment |
KR20180071012A (ko) * | 2016-12-19 | 2018-06-27 | 삼성전자주식회사 | 전자 장치 및 전자 장치 제어 방법 |
WO2018142588A1 (ja) * | 2017-02-03 | 2018-08-09 | 楽天株式会社 | 情報処理装置、情報処理方法、プログラム、記憶媒体 |
JP2019200524A (ja) * | 2018-05-15 | 2019-11-21 | ルネサスエレクトロニクス株式会社 | プログラム、情報処理装置、および情報処理方法 |
CN111488139B (zh) * | 2019-01-25 | 2023-01-31 | 成都鼎桥通信技术有限公司 | 一种基于专网终端的集群业务二次开发方法 |
EP3716037A1 (en) * | 2019-03-28 | 2020-09-30 | ABB Schweiz AG | Responsive auto-layouting of industrial process graphics |
CN110543372B (zh) * | 2019-09-10 | 2023-03-28 | 北京百度网讯科技有限公司 | 移动终端原生端与h5端交互的方法及装置 |
US11762525B2 (en) * | 2020-01-15 | 2023-09-19 | Vmware, Inc. | Enterprise branding configuration provisioning |
FR3110995A1 (fr) * | 2020-05-27 | 2021-12-03 | Orange | Procédé d’affichage d’une interface graphique d’un équipement source sur un équipement récepteur. |
CN113434587B (zh) * | 2021-06-30 | 2023-08-18 | 青岛海尔科技有限公司 | 一种数据存储、数据查询方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1815439A (zh) * | 2005-01-31 | 2006-08-09 | 微软公司 | 用于目标设备显示模拟的方法和系统 |
CN101206702A (zh) * | 2006-12-22 | 2008-06-25 | 邓文彬 | 一种web源代码保护技术 |
US20090228838A1 (en) * | 2008-03-04 | 2009-09-10 | Ryan Christopher N | Content design tool |
US20110052007A1 (en) * | 2009-09-02 | 2011-03-03 | Pixart Imaging Inc. | Gesture recognition method and interactive system using the same |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5778403A (en) | 1994-09-01 | 1998-07-07 | Microsoft Corporation | Method for displaying text on a rendering device to accurately represent the text as if displayed on a target device |
US6993575B2 (en) | 2000-02-22 | 2006-01-31 | Oracle International Corporation | Using one device to configure and emulate web site content to be displayed on another device |
US20040027377A1 (en) | 2002-08-06 | 2004-02-12 | Grace Hays | User interface design and validation including dynamic data |
CN100407642C (zh) * | 2004-12-01 | 2008-07-30 | 华为技术有限公司 | 一种网页数据的实时更新方法 |
US9390132B1 (en) * | 2009-10-16 | 2016-07-12 | Iqor Holdings, Inc. | Apparatuses, methods and systems for a universal data librarian |
US8589140B1 (en) * | 2005-06-10 | 2013-11-19 | Wapp Tech Corp. | System and method for emulating and profiling a frame-based application playing on a mobile device |
US7546131B1 (en) * | 2006-01-20 | 2009-06-09 | Google Inc. | Emulating a messaging operation for mobile devices |
CN101079768B (zh) * | 2006-05-25 | 2010-11-03 | 阿里巴巴集团控股有限公司 | 一种统计网页链接点击数据的方法 |
US20080256468A1 (en) | 2007-04-11 | 2008-10-16 | Johan Christiaan Peters | Method and apparatus for displaying a user interface on multiple devices simultaneously |
CA2621744C (en) * | 2007-09-13 | 2016-10-04 | Research In Motion Limited | System and method for interfacing between a mobile device and a personal computer |
WO2009143294A2 (en) | 2008-05-20 | 2009-11-26 | Citrix Systems, Inc. | Methods and systems for using external display devices with a mobile computing device |
CN102054162A (zh) * | 2009-11-10 | 2011-05-11 | 仲琦科技股份有限公司 | 利用图像特征的图像评量方法与系统 |
CN101727498A (zh) * | 2010-01-15 | 2010-06-09 | 西安交通大学 | 一种基于web结构的网页信息自动提取方法 |
US20110257958A1 (en) * | 2010-04-15 | 2011-10-20 | Michael Rogler Kildevaeld | Virtual smart phone |
US20130024251A1 (en) * | 2011-07-22 | 2013-01-24 | Bruno Richard Preiss | Communicating presentation data relating to presentation of information |
US20130096906A1 (en) * | 2011-10-11 | 2013-04-18 | Invodo, Inc. | Methods and Systems for Providing Items to Customers Via a Network |
-
2011
- 2011-09-26 US US13/245,258 patent/US9142192B2/en active Active
-
2012
- 2012-09-03 TW TW101132001A patent/TWI578220B/zh not_active IP Right Cessation
- 2012-09-17 WO PCT/US2012/055713 patent/WO2013048799A1/en active Application Filing
- 2012-09-17 EP EP12834637.6A patent/EP2761495A4/en not_active Withdrawn
- 2012-09-17 CN CN201280046903.2A patent/CN103814371B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1815439A (zh) * | 2005-01-31 | 2006-08-09 | 微软公司 | 用于目标设备显示模拟的方法和系统 |
CN101206702A (zh) * | 2006-12-22 | 2008-06-25 | 邓文彬 | 一种web源代码保护技术 |
US20090228838A1 (en) * | 2008-03-04 | 2009-09-10 | Ryan Christopher N | Content design tool |
US20110052007A1 (en) * | 2009-09-02 | 2011-03-03 | Pixart Imaging Inc. | Gesture recognition method and interactive system using the same |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105446796A (zh) * | 2015-11-30 | 2016-03-30 | 金蝶软件(中国)有限公司 | 一种移动轻应用的模拟方法及设备 |
CN105446796B (zh) * | 2015-11-30 | 2018-10-23 | 金蝶软件(中国)有限公司 | 一种移动轻应用的模拟方法及设备 |
CN105740403A (zh) * | 2016-01-28 | 2016-07-06 | 浪潮通用软件有限公司 | 一种对预览效果进行调整的方法及装置 |
CN109388787A (zh) * | 2017-08-10 | 2019-02-26 | 易易资设有限公司 | 编辑超文件标示语言文件的方法 |
CN111026485A (zh) * | 2019-12-02 | 2020-04-17 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置 |
CN111026485B (zh) * | 2019-12-02 | 2021-05-07 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置 |
CN111475163A (zh) * | 2020-06-22 | 2020-07-31 | 腾讯科技(深圳)有限公司 | 视图模板的代码文件生成方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP2761495A1 (en) | 2014-08-06 |
WO2013048799A1 (en) | 2013-04-04 |
EP2761495A4 (en) | 2015-04-29 |
US9142192B2 (en) | 2015-09-22 |
TWI578220B (zh) | 2017-04-11 |
US20130076797A1 (en) | 2013-03-28 |
TW201324322A (zh) | 2013-06-16 |
CN103814371B (zh) | 2017-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103814371A (zh) | Web浏览器中的Web应用和辅助设备的模拟、Web应用开发工具以及使用它们的方法 | |
CN103890727A (zh) | Web浏览器中的Web应用和辅助设备的模拟、Web应用开发工具以及使用它们的方法 | |
Hermes | Xamarin mobile application development: Cross-platform c# and xamarin. forms fundamentals | |
KR102016161B1 (ko) | 간략화된 지식공학 방법 및 시스템 | |
Macik et al. | Context-sensitive, cross-platform user interface generation | |
CN102053987B (zh) | 用于显示和修改数据数组的统一接口 | |
Clemente et al. | Deployment of physics simulation apps using Easy JavaScript Simulations | |
de Lange et al. | Collaborative wireframing for model-driven web engineering | |
Hermes et al. | Mobile development using xamarin | |
Gill | Using React Native for mobile software development | |
Alor-Hernández | Frameworks, Methodologies, and Tools for Developing Rich Internet Applications | |
Norrie et al. | X-Themes: supporting design-by-example | |
Calvary et al. | Introduction to model-based user interfaces | |
Earley | CH5M3D: an HTML5 program for creating 3D molecular structures | |
Martin et al. | Integration of a template system into model-based user interface development workflows | |
Hamid | Automated web-based user interfaces for novice programmers | |
Sundar et al. | Content Management System and Automation of Model Cloning Scalable EAV Model in GNEISYS Framework | |
Pani et al. | A Novel Approach for Designing Mobile Native Apps | |
Roubi et al. | Toward a Model Driven Approach for Generating Multi Platform Applications with ZeroCouplage Framework | |
Guerrero et al. | Fiori Applications in SAP HANA | |
Takeuchi et al. | Creating mapping applications for the iPhone | |
Gao | Design and Implementation of End-User Programming Tools for Web Mashups | |
Dospinescu et al. | Adaptive UIX Layer for University Information SOA-BUS. | |
Sekulovski | Cross-platform mobile application generation with a model-driven approach based on IFML and cross-compilation | |
Cheeseman | Cocoa Recipes for Mac OS X |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170627 Termination date: 20210917 |