CN101944120A - 一种无线标记语言脚本的执行方法及装置 - Google Patents

一种无线标记语言脚本的执行方法及装置 Download PDF

Info

Publication number
CN101944120A
CN101944120A CN 201010288943 CN201010288943A CN101944120A CN 101944120 A CN101944120 A CN 101944120A CN 201010288943 CN201010288943 CN 201010288943 CN 201010288943 A CN201010288943 A CN 201010288943A CN 101944120 A CN101944120 A CN 101944120A
Authority
CN
China
Prior art keywords
wmlscript
script
content
url
function
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
CN 201010288943
Other languages
English (en)
Other versions
CN101944120B (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.)
Hisense Mobile Communications Technology Co Ltd
Original Assignee
Hisense Mobile Communications Technology 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 Hisense Mobile Communications Technology Co Ltd filed Critical Hisense Mobile Communications Technology Co Ltd
Priority to CN2010102889430A priority Critical patent/CN101944120B/zh
Publication of CN101944120A publication Critical patent/CN101944120A/zh
Application granted granted Critical
Publication of CN101944120B publication Critical patent/CN101944120B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种WMLScript脚本的执行方法,用于在WebKit浏览器中实现对WMLScript脚本的支持,从而使WebKit浏览器支持WMLScript脚本语言,使WebKit浏览器功能更加完善。所述方法包括:当无线应用协议wap网页中包含WMLScript脚本的url时,加载WMLScript脚本;受到点击链接的触发时,调用WMLScript引擎;通过WMLScript引擎调用WMLScript脚本,并获得WMLScript脚本的内容;执行WMLScript脚本的内容。本发明还公开了用于实现所述方法的装置。

Description

一种无线标记语言脚本的执行方法及装置
技术领域
本发明涉及计算机及嵌入式领域,特别涉及一种WMLScript脚本的执行方法及装置。
背景技术
在2G(second generation,第二代移动通讯技术)时代,由于受到制约无线网络的带宽的限制,因此移动设备上主要是wap(Wireless ApplicationProtocol,无线应用协议)浏览器。随着第三代移动网络的普及,制约无线网络的带宽问题不复存在,另外随着移动终端智能化的发展,CPU主频越来越高,及终端屏幕尺寸越来越大,移动终端已经有足够的能力解析和显示web(环球网)网页。
在此背景下,移动运营商提出了全功能浏览器的要求,即通过一个浏览器既能访问www(World Wide Web,万维网)网页,也能访问wap网页,这就需要浏览器内部有不同的引擎。
Android一词的本义指“机器人”,同时也是一种基于Linux(一种操作系统)平台的开源移动终端操作系统的名称。该操作系统由操作系统内核、中间件、用户界面和应用软件组成,采用软件堆层(Software Stack,又名软件叠层)的架构,主要分为三部分。底层以Linux内核工作为基础,由C(一种编程语言)语言开发,只提供基本功能;中间层包括函数库(Library)和虚拟机(Virtual Machine),由C++(一种编程语言)语言开发。最上层是各种应用软件,包括通话程序,短信程序等,由各公司自行开发,以Java(一种编程语言)语言作为编写程序的一部分语言。
WebKit是一个开源的浏览器内核,Android操作系统使用它作为内置浏览器的内核,并且将采用该内核的浏览器称为WebKit浏览器。WebKit浏览器高效稳定,兼容性好,并且源码结构清晰,易于维护。然而WebKit浏览器内部只有javascript(一种脚本语言)引擎,因此仅支持www网页的访问,WebKit浏览器中没有WMLscript(Wireless Markup Language script,无线标记语言脚本)引擎,不支持wap网页中的WMLScript脚本。然而,要在Android系统中使用其它的全功能浏览器,开发过程比较费时费力,且必须支付一定的开发费用。某些浏览器的性能也不是很好,运行比较慢,布局不美观,并且,这些浏览器均不开放源代码,在浏览器出现问题后,也不方便进行调试以解决问题。
发明内容
本发明实施例提供一种WMLscript引擎的实现方法及装置,用于在WebKit浏览器中实现对WMLScript脚本的支持,从而使WebKit浏览器支持WMLScript脚本语言,使WebKit浏览器功能更加完善。
一种无线标记语言脚本WMLScript脚本的执行方法,包括以下步骤:
当wap网页中包含WMLScript脚本的url时,加载WMLScript脚本;
受到点击链接的触发时,调用WMLScript引擎;
通过WMLScript引擎调用WMLScript脚本,并获得WMLScript脚本的内容;
执行WMLScript脚本的内容。
一种无线标记语言WMLScript脚本的执行装置,包括:
获取模块,用于当wap网页中包含WMLScript脚本的url时,加载WMLScript脚本;
执行模块,用于当受到点击链接的触发时,调用WMLScript引擎;通过WMLScript引擎调用WMLScript脚本,并获得WMLScript脚本的内容;执行WMLScript脚本的内容。
本发明实施例当wap网页中包含WMLScript脚本的url时,加载WMLScript脚本;受到点击链接的触发时,执行WMLScript引擎;通过WMLScript引擎调用WMLScript脚本,并获得WMLScript脚本的内容;执行WMLScript脚本的内容。从而在WebKit浏览器中加入了WMLscript引擎,以使WebKit浏览器支持WMLScript脚本,从而支持wap网页的访问。
附图说明
图1为本发明实施例中WMLScript脚本的执行装置的主要结构图;
图2为本发明实施例中带有解析模块的WMLScript脚本的执行装置的主要结构图;
图3为本发明实施例中WMLScript脚本的执行装置的详细结构图;
图4为本发明实施例中WMLScript脚本的执行方法的主要流程图;
图5A为本发明实施例中WMLScript脚本的执行方法的详细流程图;
图5B为本发明实施例中加入判断过程后WMLScript脚本的执行方法的详细流程图。
具体实施方式
本发明实施例当wap网页中包含WMLScript脚本的url时,加载WMLScript脚本;受到点击链接的触发时,执行WMLScript引擎;通过WMLScript引擎调用WMLScript脚本,并获得WMLScript脚本的内容;执行WMLScript脚本的内容。从而在WebKit浏览器中加入了WMLscript引擎,以使WebKit浏览器支持WMLScript脚本,从而支持wap网页的访问。
参见图1,本发明实施例中WMLscript引擎的实现装置包括获取模块101及执行模块102。其中,所述装置位于WebKit浏览器中。
获取模块101用于获取WMLScript脚本。获取模块101具体用于在解析模块确定网页中go(执行)语句为链接属性时,根据获取WMLScript脚本的函数加载WMLScript脚本及获取WMLScript脚本的内容。例如,获取WMLScript脚本的函数可以是loadWMLScript。WebKit浏览器中设置一个类,用于根据获取WMLScript脚本的函数获取WMLScript脚本、获取该WMLScript脚本的内容及执行该WMLScript脚本,例如,该类为WMLGoElement(wml执行要素),获取WMLScript脚本的函数就位于WMLGoElement类中,其中,本发明实施例中获取WMLScript脚本的函数loadWMLScript可以如下:
             void loadWMLScript(String url)
其中,loadWMLScript函数的具体内容如下:
void WMLGoElement::loadWMLScript(String url)//loadWMLScript函数定义在WMLGoElement类中;
{
if(!isNeedRunWmlScript((char*)url.latinl().data()))//判断是否需要运行WMLScript脚本,以解析url;
return;
Document*doc=document();//将当前网页的数据赋给变量;
if(!doc)
return;
DocLoader*docLoader=doc->docLoader();//获取当前网页的下载类,以方便下载WMLScript脚本文件;
if(!docLoader)
      return;
if(NULL==m_pCacheWMLScript)//判断m_pCacheWMLScript变量是否为空。这是出于安全考虑的步骤,以防m_pCacheWMLScript变量不为空时影响执行过程。也可以不执行本步骤,直接执行下一步;
m_pCacheWMLScript=docLoader->requestScript(url,″ISO-8859-1″);//将WMLScript脚本的内容赋给m_pCacheWMLScript变量,相当于获得了WMLScript脚本的内容;
if(m_pCacheWMLScript){
m_pCacheWMLScript->addClient(this);//为下载功能增加一个客户端,在下载完成后通知该客户端。其中,一个WMLScript脚本只需下载一次。
        return;
    }
}
其中,WMLScript脚本的url指的是指向WMLScript脚本的url,loadWMLScript函数用于获取WMLScript脚本的内容。
WMLGoElement中还可以有一个变量,用于保存所述WMLScript脚本的内容,例如,本发明实施例中该变量可以为CachedResourceHandle<CachedScript>m_pCacheWMLScript。
参见图2,所述装置还包括解析模块103。
解析模块103用于解析wap网页。解析模块103具体用于解析wap网页中调用的url,调用的函数名称、调用的函数参数等。解析模块103在解析wap网页时,解析到go语句的时候,会首先根据WMLGoElement类创建对象,在创建完后会调用相应函数来解析go语句的属性,例如,本发明实施例中该函数可以是WMLGoElement::parseMappedAttribute(解析映射属性)函数,该函数位于WMLGoElement类中,即判断go语句是否为链接属性,也就是判断需执行的任务是否为链接属性,如果解析模块103解析出的go语句的属性为链接属性,则调用获取模块101中的loadWMLScript函数,以获取WMLScript脚本,并可以将该WMLScript脚本的内容存入CachedResourceHandle<CachedScript>m_pCacheWMLScript变量中。
执行模块102用于执行WMLScript脚本的内容。当执行模块102受到点击链接的触发时,会调用相应执行函数来执行WMLScript引擎例如,该执行函数可以是WMLGoElement::executetask函数,该函数定义在WMLGoElement类中,用于执行WMLScript引擎。
在本发明实施例中,需对相应执行函数进行扩展后该执行函数才能完成执行WMLScript引擎的任务。例如,对该executetask(执行任务)函数进行如下扩展:
if(isNeedRunWmlScript((char*)href.latin1().data())&&NULL!=m_pCacheWMLScript)       //判断此链接是否为有效的WMLScript脚本链接;
{
  extern Document*gdoc;     //定义全局变量;
          gdoc=doc;
String str=url.string();   //定义url链接为字符串格式;
String strScriptFun;
int pos=0;
pos=str.reverseFind(′/′);//获取脚本文件名;
pos++;
strScriptFun=str.substring(pos,str.length()-pos);//获取WMLScript链接中的函数名称;
strScriptFun.replace(″%20″,″″);              //替换多余空格;
strScriptFun=strScriptFun.stripWhiteSpace();      //替换多余空格;
callWMLScriptFunc(strScriptFun.latin1().data(),        //开始执行WMLscript引擎;
m_pCacheWMLScript->script().latin1().data(),     //获取脚本的内容,以参数的方式传递给引擎执行;
m_pCacheWMLScript->script().length());           //传入脚本长度;
gdoc=NULL;
m_pCacheWMLScript->destroyDecodedData();         //释放脚本内容,以免该内容继续占用内存,造成内存泄露;
return;
}
在WebKit浏览器中引入了WMLscript引擎,从而使WebKit浏览器支持。其中,callWMLScriptFunc是实现WMLscript引擎的入口函数,用于调用WMLScript脚本、获得WMLScript脚本内容及执行WMLScript脚本内容。所有执行WMLScript脚本的过程都是从此函数开始。callWMLScriptFunc函数的具体内容如下:
int callWMLScriptFunc(const char*uri,const char*pScript,int scrit_len)//定义callWMLScriptFunc函数的三个参数,包括uri、WMLScript脚本及WMLScript脚本的长度;
{
   WMLScriptSlot  result={0};
   unsigned short numApps=0;
       int    byteCodeLen=0;
       int    freeFlag=0;    //初始化,先将参数的值均置零;
 if((NULL==pScript)||(scrit_len≤=0)){//判断脚本长度是否为0;
      return 0;
                            }
     if(!isValidByteCode(pScript,scrit_len)){
             if(WMLS_OK!=compilerWmlScript((char*)pScript,scrit_len,&gpWmlScriptCode,&byteCodeLen))    //判断脚本的内容是否为有效的WMLScript的二进制格式,否则有可能是文本方式的脚本,需要先把文本方式的脚本编译为二进制的脚本;
        return 0;
if((NULL==gpWmlScriptCode)||(byteCodeLen<=0))
        return 0;
        freeFlag=1;
          }else
{gpWmlScriptCode=(char*)malloc(scrit_len+1);
memset(gpWmlScriptCode,0,scrit_len+1);
memcpy(gpWmlScriptCode,pScript,scrit_len);//将WMLScript脚本长度及WMLScript脚本的内容传递到执行变量中,以执行WMLScript脚本的内容;
                             }
   //execute script
WMLScriptExecute(gScriptRef,uri,&result);//开始执行WMLScript脚本,以下均为执行过程;
if((freeFlag)&&(NULL!=gpWmlScriptCode)){
ws_free_byte_code((unsigned char*)gpWmlScriptCode);
gpWmlScriptCode=NULL;
freeFlag=0;
           }else{
if(NULL!=gpWmlScriptCode){
free(gpWmlScriptCode);
gpWmlScriptCode=NULL;
            }
     }
       return 1;
  }
int WMLScriptExecute(WMLScriptLibGlobals*gP,const char*uri,WMLScriptSlot*rs)
           {
short findex=0;
unsigned char argc=0;
char*str=*ptr=NULL;
WMLScriptModule*m;
WMLScriptSlot*stack;
WMLScriptFunction*fp;
str=strchr((char*)uri,′#′);
if(str==NULL)return WMLScriptErrInvalidURI;
m=WMLScriptLoadModule(gP,uri,str-uri,&err);
if(m==NULL)
        return-1;
   ptr=strchr(++str,′(′);
if(ptr==NULL)
   return WMLScriptErrInvalidURI;
   findex=WMLScriptFindFunc(m,str,ptr-str);
if(findex<0)return WMLScriptErrFunctionNotFound;
当在获取模块101中加入获取WMLScript脚本的函数,并对执行模块102中相应执行函数作出扩展后,就在WebKit浏览器中实现了WMLscript引擎。当将WMLscript引擎移植入WebKit浏览器后,可由解析模块103解析wap网页中调用的url、调用的函数名称、调用的函数参数等,解析模块103若解析到go(语句)为链接属性,则获取模块101加载WMLScript脚本及WMLScript脚本的内容,执行模块102调用WMLscript引擎,通过WMLscript引擎调用WMLScript脚本,获得并执行WMLScript脚本的内容。具体的,解析模块103解析网页中调用的url,例如,该url可以为getCapital.wmls#getCapital(‘capital’,$(country_name)’),是一个用于根据国家名称获取该国家首都名称的函数。解析模块103解析调用的函数名称getcapital(获知首都),解析调用的函数的参数,参数1:’capital’(首都),参数2:’country_name’(国家名)。获取模块101加载该WMLScript脚本及该WMLScript脚本的内容,执行模块102调用WMLscript引擎,WMLscript引擎通过函数名称getcapital获取到函数代码开始处的地址,将此地址设置为程序执行的入口点。把函数调用的参数(参数1:’capital’,参数2:’country_name’)传入给函数使用,较佳的,可以通过压栈的方式传入给函数使用,其中,压栈的特征是先入后出,后入先出。然后开始根据调用的函数取指令,根据不同的opcode(操作码)值,跳转到相应位置执行流程。依次解析执行指令,每解析完一个指令即修改IP(指针),使其指向下一个地址,一直到函数的结束。其中,如果指令中有call(调用)指令,则还需调用库函数。库函数主要分为两大类:标准库函数和浏览器相关的库函数。标准库函数主要涉及到浮点数(Float)及字符串(String)等的相关功能,浏览器相关的函数主要涉及到网页中变量的获取及赋值、url的解析等等,例如WTAPublic函数主要涉及到打电话等相关功能。这些库函数的功能都是wmlscript预先规范定义好的,但具体的实现过程却与平台及使用的浏览器相关。
参见图3,所述装置还包括编译模块104。
WMLScript脚本的内容的形式一般分为文本文件或编译好的二进制字节码文件。对于文本文件形式的WMLScript脚本的内容,目前浏览器无法执行,因此必须将其转换为二进制字节码文件方可执行。
执行模块102还用于判断获取的WMLScript脚本的内容是否是二进制字节码文件。如果判断结果为否,所获取的WMLScript脚本的内容不是二进制字节码文件而是文本文件,则需编译模块104先将其编译为二进制字节码文件,再由执行模块102执行;如果判断结果为是,所获取的WMLScript脚本的内容是二进制字节码文件,则由执行模块102直接执行。
编译模块104用于将文本文件形式的WMLScript脚本的内容编译为二进制字节码文件。执行模块102开始执行WMLScript脚本的内容时,获取模块101需首先WMLScript脚本的内容,根据使用不同的apn(Access Point Name,接入点名称),WMLScript脚本的内容分为文本文件或编译好的二进制字节码文件,编译模块104当加载的WMLScript脚本的内容文件为文本文件时,将其编译为二进制字节码文件,再由执行模块102调用WMLscript引擎来执行。这样可以使WebKit浏览器功能更加优化,无论使用何种网关,WebKit浏览器都能够支持WMLScript脚本。
下面通过实现流程来介绍WMLscript引擎的实现方法。
参见图4,本发明实施例介绍WMLscript引擎的主要实现方法。方法流程如下:
步骤401:当wap网页中包含WMLScript脚本的url时,加载WMLScript脚本。其中,WMLScript脚本的url指的是指向WMLScript脚本的url
步骤402:受到点击链接的触发时,执行WMLScript引擎。
步骤403:通过wmlscript引擎调用WMLScript脚本,并获得WMLScript脚本的内容。
步骤404:执行WMLScript脚本的内容。
参见图5A,本发明实施例介绍WMLscript引擎的详细实现方法。方法流程如下:
首先需在WebKit浏览器中加入获取WMLScript脚本的函数。其中,该获取WMLScript脚本的函数可以定义在WMLGoElement类中,函数名可以是loadWMLScript。还可以同时定义一个用于保存WMLScript脚本的内容的变量,例如该变量为CachedResourceHandle<CachedScript>m_pCacheWMLScript。
还需扩展WebKit浏览器中相关执行函数的内容。例如,在本发明实施例中,该函数可以是WMLGoElement::executetask,该函数定义在WMLGoElement类中,用于执行WMLscript引擎,通过获得WMLscript引擎的入口函数,实现WMLscript引擎。
步骤501:解析wap网页。
步骤502:判断go语句是否为链接属性。当判断结果为是时,继续步骤503,否则结束流程。
步骤503:调用获取WMLScript脚本的函数,加载WMLScript脚本及该WMLScript脚本的内容。其中,可以用loadWMLScript函数获取WMLScript脚本。
步骤504:将加载的WMLScript脚本的内容存入变量中。其中,该变量可以是CachedResourceHandle<CachedScript>m_pCacheWMLScript。
解析模块103在解析wap网页时,解析到go(执行)语句的时候,会先根据WMLGoElement类创建对象,在创建完毕后调用WMLGoElement::parseMappedAttribute函数来解析go语句的属性,如果解析模块103解析出的go语句的属性为链接属性,则会调用获取模块103中的loadWMLScript函数,以加载WMLScript脚本及该WMLScript脚本的内容,并可以将该内容存入CachedResourceHandle<CachedScript>m_pCacheWMLScript变量中。
步骤505:受到点击链接事件的触发。
步骤506:调用WMLGoElement::executetask函数以执行WMLScript引擎。
步骤507:通过WMLScript引擎调用WMLScript脚本并执行WMLScript脚本的内容。
参见图5B,本发明实施例中加入了判断过程,以判断WMLScript脚本是文本文件还是二进制字节码文件。详细方法流程如下:
步骤511:解析wap网页。
WebKit浏览器受到点击链接事件的触发。
步骤512:判断go语句是否为链接属性。当判断结果为是时,继续步骤513,否则结束流程。
步骤513:调用获取WMLScript脚本的函数,加载WMLScript脚本及该WMLScript脚本的内容。其中,可以用loadWMLScript函数获取WMLScript脚本。
步骤514:将加载的WMLScript脚本的内容存入变量中。其中,该变量可以是CachedResourceHandle<CachedScript>m_pCacheWMLScript。
步骤515:受到点击链接事件的触发。
步骤516:判断获取的WMLScript脚本的内容是否为二进制字节码文件。当判断结果为否,继续步骤517,否则继续步骤518。
步骤517:将获取的文本文件形式的WMLScript脚本的内容编译为二进制字节码文件形式。
步骤518:调用WMLGoElement::executetask函数以执行WMLScript引擎。
步骤519:通过WMLscript引擎调用WMLScript脚本并执行WMLScript脚本的内容。
本发明实施例当wap网页中包含WMLScript脚本的url时,加载WMLScript脚本;受到点击链接的触发时,执行WMLScript引擎;通过WMLScript引擎调用WMLScript脚本,并获得WMLScript脚本的内容;执行WMLScript脚本的内容。从而在WebKit浏览器中加入了WMLscript引擎,以使WebKit浏览器支持WMLScript脚本,从而支持wap网页的访问。本发明实施例还在WMLGoElement  类中增加了CachedResourceHandle<CachedScript>m_pCacheWMLScript变量,用于保存加载的WMLScript脚本的内容。只需在WebKit浏览器中加入相关函数即可实现将WMLscript引擎植入WebKit浏览器中,实现过程简单,便于操作。并且本发明实施例还加入了编译模块104,用于将文本文件形式的WMLScript脚本的内容编译为WebKit浏览器可执行的二进制字节码文件,以避免当apn不同时,因WMLScript脚本的内容为文本文件形式而导致该脚本无法执行,使WebKit浏览器的功能更加优化,保证无论在使用何种网关的情况下WebKit浏览器都能够支持WMLScript脚本。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种无线标记语言脚本WMLScript脚本的执行方法,其特征在于,包括以下步骤:
当无线应用协议wap网页中包含WMLScript脚本的统一资源定位url时,加载WMLScript脚本;
受到点击链接的触发时,调用WMLScript引擎;
通过WMLScript引擎调用WMLScript脚本,并获得WMLScript脚本的内容;
执行WMLScript脚本的内容。
2.如权利要求1所述的方法,其特征在于,在当wap网页中包含WMLScript脚本的url时,加载WMLScript脚本之前还包括步骤:判断需执行的任务是否为链接属性;
当wap网页中包含WMLScript脚本的url时,加载WMLScript脚本的步骤包括:当判断结果为是时,获取当前网页中的数据及当前网页中的下载类,以加载WMLScript脚本。
3.如权利要求1所述的方法,其特征在于,执行wmlscript引擎的步骤包括:获取WMLScript脚本文件名、WMLScript脚本的url中的函数名称和WMLScript脚本长度。
4.如权利要求3所述的方法,其特征在于,调用WMLScript脚本,并获得WMLScript脚本的内容的步骤包括:根据所述WMLScript脚本文件名、WMLScript脚本的url中的函数名称和WMLScript脚本长度,获取WMLScript脚本的内容。
5.如权利要求1所述的方法,其特征在于,在执行WMLScript脚本的内容之前还包括步骤:判断所述获取的WMLScript脚本的内容是否为二进制字节码文件,当判断结果为否时,将所述获取的WMLScript脚本的内容编译为二进制字节码文件。
6.一种无线标记语言WMLScript脚本的执行装置,其特征在于,包括:
获取模块,用于当wap网页中包含WMLScript脚本的url时,加载WMLScript脚本;
执行模块,用于当受到点击链接的触发时,调用WMLScript引擎;通过WMLScript引擎调用WMLScript脚本,并获得WMLScript脚本的内容;执行WMLScript脚本的内容。
7.如权利要求6所述的装置,其特征在于,还包括:解析模块,用于判断需执行的任务是否为链接属性;
当判断结果为是时,所述获取模块获取当前网页中的数据及当前网页中的下载类,以加载WMLScript脚本。
8.如权利要求6所述的装置,其特征在于,所述执行模块用于获取WMLScript脚本文件名、WMLScript脚本的url中的函数名称和WMLScript脚本长度。
9.如权利要求8所述的装置,其特征在于,所述执行模块用于根据所述WMLScript脚本文件名、WMLScript脚本的url中的函数名称和WMLScript脚本长度,获取WMLScript脚本的内容。
10.如权利要求6所述的装置,其特征在于,所述执行模块还用于判断所述获取的WMLScript脚本的内容是否为二进制字节码文件;
当判断结果为否时,还包括:编译模块,用于将所述获取的WMLScript脚本的内容编译为二进制字节码文件。
CN2010102889430A 2010-09-19 2010-09-19 一种无线标记语言脚本的执行方法及装置 Expired - Fee Related CN101944120B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102889430A CN101944120B (zh) 2010-09-19 2010-09-19 一种无线标记语言脚本的执行方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010102889430A CN101944120B (zh) 2010-09-19 2010-09-19 一种无线标记语言脚本的执行方法及装置

Publications (2)

Publication Number Publication Date
CN101944120A true CN101944120A (zh) 2011-01-12
CN101944120B CN101944120B (zh) 2012-05-30

Family

ID=43436111

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102889430A Expired - Fee Related CN101944120B (zh) 2010-09-19 2010-09-19 一种无线标记语言脚本的执行方法及装置

Country Status (1)

Country Link
CN (1) CN101944120B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102724169A (zh) * 2011-03-30 2012-10-10 上海亿动信息技术有限公司 一种用于移动广告系统的后台架构及控制系统
CN102955694A (zh) * 2011-08-31 2013-03-06 中国电信股份有限公司 基于WebKit 浏览器的客户端实现方法以及客户端
CN103970737A (zh) * 2013-01-24 2014-08-06 腾讯科技(深圳)有限公司 一种数据构造方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1997963A (zh) * 2004-05-25 2007-07-11 亚历山大·索雷斯·皮·法里亚斯 访问pos终端的系统、下载和更新应用的方法以及使用这种系统执行电子操作的方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1997963A (zh) * 2004-05-25 2007-07-11 亚历山大·索雷斯·皮·法里亚斯 访问pos终端的系统、下载和更新应用的方法以及使用这种系统执行电子操作的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《电脑知识与技术》 20090228 陈军 嵌入式WAP浏览器的架构及实现 论文794页第15行-795页倒数第1行,图1-2 1-10 第5卷, 第4期 2 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102724169A (zh) * 2011-03-30 2012-10-10 上海亿动信息技术有限公司 一种用于移动广告系统的后台架构及控制系统
CN102955694A (zh) * 2011-08-31 2013-03-06 中国电信股份有限公司 基于WebKit 浏览器的客户端实现方法以及客户端
CN102955694B (zh) * 2011-08-31 2016-06-22 中国电信股份有限公司 基于WebKit 浏览器的客户端实现方法以及客户端
CN103970737A (zh) * 2013-01-24 2014-08-06 腾讯科技(深圳)有限公司 一种数据构造方法和装置

Also Published As

Publication number Publication date
CN101944120B (zh) 2012-05-30

Similar Documents

Publication Publication Date Title
US9342492B1 (en) Methods and systems for the provisioning and execution of a mobile software application
US9170788B2 (en) Analysis of dynamic elements in bounded time
CN101930366B (zh) 一种基于浏览器的手机运行时系统
CN110990731A (zh) 一种静态网页的渲染方法、装置、设备及计算机存储介质
CN104156243B (zh) 一种应用分发和快速加载运行的系统及方法
CN110134378A (zh) 应用程序创建方法及装置、计算机设备及存储介质
CN104731589A (zh) 用户界面的自动生成方法及自动生成装置
KR20060050608A (ko) 데이터 공유 시스템, 방법 및 소프트웨어 툴
CN110083383A (zh) 浏览器式样兼容方法、装置、计算机设备及存储介质
CN102663285A (zh) 一种apk病毒特征码的提取方法及装置
CN109240697B (zh) 调用处理方法及装置、存储介质
CN103443763B (zh) 包含对重写虚拟函数的调用的支持的isa桥接
CN102023856A (zh) 根据用户的需求格式化输出及操作伺服端业务数据的方法
CN106293675A (zh) 系统静态资源加载方法及装置
CN104657189A (zh) 混合式动态码编译装置、方法及其服务系统
CN101944120B (zh) 一种无线标记语言脚本的执行方法及装置
KR101117165B1 (ko) 이기종 운영체제 계층 모듈에서 동작하는 웹기반어플리케이션의 연동이 가능한 모바일 단말기용 웹 플랫폼 유닛
CN101807204A (zh) 一种遥感图像处理Web服务动态生成方法
CN111723314B (zh) 网页展示方法、装置、电子设备及计算机可读存储介质
JP3757235B2 (ja) ネイティブコンパイル方法、ネイティブコンパイル前処理方法、コンピュータプログラム、サーバ、通信システム、および移動体通信端末装置
CN113360156B (zh) 一种ios编译方法及相关设备
US20050197157A1 (en) System enabling easy application development on mobile devices
US11048488B2 (en) Software code optimizer and method
CN105989046A (zh) 网站显示方法及系统、以及用户终端
CN109492144A (zh) 软件系统的关联关系分析方法、装置和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
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: 20120530

Termination date: 20190919