以文本方式查看主题

-  曙海教育集团论坛  (http://sun4.cn/bbs/index.asp)
--  WAP平台开发  (http://sun4.cn/bbs/list.asp?boardid=50)
----  关于“WAP平台开发技...”的内容  (http://sun4.cn/bbs/dispbbs.asp?boardid=50&id=2154)

--  作者:wangxinxin
--  发布时间:2010-12-6 11:19:39
--  关于“WAP平台开发技...”的内容
三、关于WAP开发的常见问答
1.开发WAP软件需要哪些工具?
   为了开发WAP应用程序,需要一个WAP网关(注意:这里的网关可能是指支持WML的服务器。可以通过配置WWW服务器达到这个目的)和WAP工具包。工具包应当包括模拟器和能让开发者浏览WML网页。WML页面的开发和HTML页面的开发一样,可以使用Notepad或者其他文本编辑器来进行编辑。
2.有哪些公司现在提供这样的开发环境?
NokiaEricssonUpPhoneMotorola都提供免费的WAP网关和工具包。
NokiaNokia ToolkitNokia WAP Server
EricssonEricsson R320WapIDE
UpPhoneUpPhone SDK
MotorolaMotorola ADK
3.开发WAP应用一定要有WAP手机吗?
   不是,当开发WAP应用的时候,不一定需要WAP手机。模拟器可以帮助开发者解决大部分的问题。但是如果是开发商业网站,特别是想知道各种移动电话在显示WML页面上的差别的时候,最好是配备一个。目前各种手机对WML标记的支持和中文的支持状况大不相同,因此WAP手机还是必要的。
4.开发者需要一个WAP网关吗?
   不是很必要。如果只想进行简单的WAP内容服务,可以使用现有的Web服务器(只需要修改MIME类型)。移动电话会通过坐落在本地的网关连接到你的服务器上。
   但是在网关上驻留开发者的程序有很多好处。既然开发者的程序是网关的一个部分,开发者就可以知道呼叫号码、身份、位置等等。
5.可以看到WML的源代码么?
   如果开发者使用SDK浏览的时候将能够看到WML的代码。如果只有一个HTML浏览器,可以访问“Fetch Page”服务(http://www.webcab.de)来取得代码。这个可以显示在Internet上的任何WML页面中。
6.可能在WML中加入applets吗?
   不能。
7.可以使用HTML开发工具来开发WAP应用吗?
   在大多数情况下开发工具是使用基于PC的浏览器。HTMLJavaScriptJava对于WAP开发来说都没有用处。但是,越来越多的开发工具在加入对WML的支持。
    AllairCold Fusion 4.5HomeSite已经有WML支持,虽然Allair也许需要清除一些BUG。另外PHPASPColdfusion/HomeSite也能支持。
   可以到 Marjolei KatsmaHomeSite Help site上得到更多的信息。
8.可以通过WML页面来操作数据库吗?
   可以,与创建HTML页面相同。任何相关的服务器端的技术都可以用来生成WML页面。
9.可以使用CGI生成WML页面吗?
   当然。可以用创建HTML同样的方法来创建WML。如果想书写一个CGI来创建WML,只要记住在页面的开头正确设置MIME类型。具体的形式根据所使用的语言不同而不同。例如在Perl中:
print ("Content-type:application/vnd.wap.wml \\n\\n\\n"); 
   注意至少要使用2个换行。
10.如何使用Cold Fusion来生成页面?
   使用Cold Fusion只需要加上:
    <CFCONTENT type="text/vnd.wap.wml">
11.如何使用PHP来书写动态的WML页面?
    PHP(和大多数其他服务端脚本语言一样)可以被用来书写动态的WML内容。只需要将输出的标记限制在WML微型浏览器可接受的范围内。
   注意PHP有很多内建的HTML功能,特别是错误功能,这些功能WML微型浏览器可能无法识别。
    PHP同样可以在一个HTML文件中编写出既适合于HTML,也适合于WML的内容。PHP的源代码对于客户端来说是不可见的。因此可以针对HTML浏览器输出HTML页面,针对WML浏览器输出WML页面。
   可以在开发PHP编写的WML页面的时候把以下代码加在开头:
<?
// header("Content-type: text/vnd.wap.wml");
  echo("<?xml version=\\"1.0\\"?>\\n");
echo("<!DOCTYPE wml PUBLIC \\"-//WAPFORUM//DTD WML 1.1//EN\\"
//"http://www.wapforum.org/DTD/wml_1.1.xml\\">\\n\\n");
?>
   基于PC的浏览器将忽略这些无法理解的WML标记。但是如果想在WAP设备或者模拟器上测试的时候,只需要将"//"去掉,页面自动变成WML页面。
12.使用PHP动态输出WML
   这些例子生成一个非常有用的应用叫做:PizzaCalc。它将输入所有的pizza的帐单和人的数目,可以算出每个人的花费。
   应用生成一个动态的页面叫做“calc”或者“input”。注意到所有的转义字符例如双引号。该页显示了一个简单的变量处理,和如何传递参数到另外的卡片:
   使用WML浏览器就可以测试应用程序:
        http://wap.colorline.no/wap-faq/apps/pizzacalc.html
   或者输入:
        http://wap.colorline.no/demos.html选择应用。
<?
header("Content-type: text/vnd.wap.wml");
echo("<?xml version=\\"1.0\\"?>\\n");
echo("<!DOCTYPE wml PUBLIC \\"-//WAPFORUM//DTD WML 1.1//EN\\"
\\"http://www.wapforum.org/DTD/wml_1.1.xml\\">\\n\\n");
echo("<!--The application PizzaCalc was originally made by The Crusaders
www.crusaders.no on the Commodore Amiga -->\\n");
echo("<!-- It was unfortunately not possible to emulate the crap interger handling of the
original program -->\\n");
?>

<wml>
<?
  if($action == "calc") {
    echo("<card id=\\"result\\" title=\\"PizzaCalc\\">\\n");
    echo("<do type=\\"prev\\" label=\\"Back\\">\\n");
    echo("<go href=\\"pizzacalc.html#input\\"/>\\n");
    echo("</do>\\n");
    echo("<p>\\n");
    echo("The cost per eater will be ".$total / $eaters."<br/>\\n");
  }
  else {
    echo("<card id=\\"input\\" title=\\"PizzaCalc\\">\\n");
    echo("<p>\\n");
echo("<anchor>Split Pizza bill
<go href=\\"pizzacalc.html?total=\\$(total)&eaters=\\$(eaters)&action=calc\\"/>
</anchor>\\n");
    echo("<br/>\\n");
    echo("Total cost: <input type=\\"text\\" name=\\"total\\" format=\\"*N\\"/>\\n");
    echo("Eaters: <input type=\\"text\\" name=\\"eaters\\" format=\\"*N\\"/>\\n");
  }
?>
</p>
</card>
</wml><!--++ plugin_code qcomic begin--> <!--++ plugin_code qcomic end-->