wap网站开发

wap网站开发1 开发 WAP 软件需要哪些工具 为了开发 WAP 应用程序 需要一个 WAP 网关

1. 开发WAP软件需要哪些工具?

为了开发WAP应用程序,需要一个WAP网关(注意:这里的网关可能是指支持WML的服务器。可以通过配置WWW服务器达到这个目的)和WAP工具包。工具包应当包括模拟器和能让开发者浏览WML网页。WML页面的开发和HTML页面的开发一样,可以使用Notepad或者其他文本编辑器来进行编辑。

2. 有哪些公司现在提供这样的开发环境?

3. 开发WAP应用一定要有WAP手机吗?

不是,当开发WAP应用的时候,不一定需要WAP手机。模拟器可以帮助开发者解决大部分的问题。但是如果是开发商业网站,特别是想知道各种移动电话在显示WML页面上的差别的时候,最好是配备一个。目前各种手机对WML标记的支持和中文的支持状况大不相同,因此WAP手机还是必要的。

4. 开发者需要一个WAP网关吗?

5. 可以看到WML的源代码么?

如果开发者使用SDK浏览的时候将能够看到WML的代码。如果只有一个HTML浏览器,可以访问“Fetch Page”服务(http://www.webcab.de)来取得代码。这个可以显示在Internet上的任何WML页面中。

6. 可能在WML中加入applets吗?

不能。

7. 可以使用HTML开发工具来开发WAP应用吗?

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只需要加上:

11. 如何使用PHP来书写动态的WML页面?

基于PC的浏览器将忽略这些无法理解的WML标记。但是如果想在WAP设备或者模拟器上测试的时候,只需要将”//”去掉,页面自动变成WML页面。

12. 使用PHP动态输出WML




if($action == “calc”) {

echo(”

/n”);

echo(”

/n”);

echo(”

/n”);

echo(”



/n”);
echo(”





13. 可以使用Java Servlet来生成WML页面吗?

14. 可以使用ASP、Perl等生成动态的应用吗?

是的。可以使用任何服务器端的脚本语言来生成WAP应用。

15. 如何使用ASP书写WML内容?

ASP(Active Server Pages)可以做到和PHP一样,也可以用来书写动态的WML。如果需要一些好的例子请参考Luca Passani’s WAP and ASP articles。或者查看Jean-Luc Praz’s (jeanluc@corobori.com)。更多的ASP例子在:http://www.corobori.com/wap/

16. 在使用ASP动态输出WML页面的时候,已经设置了Content-type,但是浏览器返回的仍然是text/html,有什么问题吗?

如果在ASP脚本中有一个错误,那么诊断程序会发还一个HTML页面,请检查脚本。

17. 在使用ASP生成WML页面的时候出现了错误:

,会是什么问题?

这个问题是Web浏览器不知道WML的正确类型,修改ASP的第一行,加入:


 

后就可以工作了。

18. 下面的代码有什么问题吗?

去掉
之前的空格。XML解释器希望在这行中没有其他字符,甚至是空行。

19. ASP代码可以在模拟器上工作,在真正的浏览器上怎么不行?

<%Response.ContentType = "text/vnd.wap.wml"%>

在XML定义正确的格式化以后,后面的部分WML对空格就没有那么严格的要求。

要注意的是有些网关在输出ASP的时候会有问题,因此在WML代码中最好使用 Response.Write 而不是<%=MyVar%>。

20. 如何使用Perl来生成WML内容?

21. 应当如何下手书写WAP应用程序?

http://www.motorola.com/MIMS/MSPG/cgi-bin/spn_madk.cgi. 

22. 如何编写和测试WML页面?

现在有很多SDK。AnywhereYouGo.com有WAP SDK和IDE列表,可以下载一个来用。任何文本编辑器都可以书写一个简单的WML页面,当然HTML编辑器也可以(特别是那些支持个人定义标签的),例如:Allaire Homesite (http://www.allaire.com )。可以使用SDK来做简单的测试,但是对于大的项目可能要困难些。AnywhereYouGo.com已经建立一套基于Web的工具来帮助WAP测试。

23. 哪儿可以在找到WML的测试工具?

24. 如何操作WML页面?

25. 有没有一个友好的方式来管理WML内容?

还没有。虽然Oracale正在开发数据库驱动的文档服务,被称为Panama,可以支持WAP分发。

26. 如何防止用户代理cache页面?

如果用户使用ASP,应该加入一行<%Response.expires=-1%> ,这个将阻止Cache。

27. 怎样防止从Cache中读取WML页面?

下面是使用WebClasses(VB)的例子。使用”Response.Expires=-1″,防止Cache。

这里有一个ASP的例子,同样使用“Response.Expires=-1”防止Cache。

最后是使用META的例子:

This deck will never be stored in the cache

下面的页面是在经过86400秒(24 hours)后过期。

This card will live in the cache for a day

有些浏览器例如:UP.Simulator如果可以通过“返回”达到另外一个卡片,那么它将不会重新装载卡片。为了强制这个更新动作,用户必须在META标签中使用must-revalidate 参数。

28. 如何防止变量被保存在Cache中?




但是,不是每个时候都有效果。在某些情况下必须使用一个难以想象的方法来清空变量。就是使用 onenterforward 事件。


















29. 怎么能够知道请求是从WML浏览器来的还是HTML浏览器来的?

既然要利用已经存在的为HTML浏览器编写的代码,就需要知道请求是从HTML浏览器还是从WML浏览器过来的。同样地,如果想重新引导的HTML浏览器直接到相应的HTML文档上,WML浏览器到WML页面上,以下的PHP代码就可以做到这些。

<%Response.Flush:Response.End%>










发帖时间:2006-6-5 14:00:38
 作者:coolbo编辑 删除 引用   第2楼 

30. 如何判断访问者是来自哪个浏览器或者移动电话?

可以通过检查HTTP_USER_AGENT标签来判断。例如试着使用Microsoft Internet Explorer访问一个站点的时候,HTTP_USER_AGENT将返回:Mozilla/4.0 (compatible;MSIE 5.0; Windows 98);在同样的情况下使用Nokia 7110访问这个站点,HTTP_USER_AGENT就会是:Nokia7110/1.0(04.73)。据此可以判断用户代理是什么类型的。

31. 可以得到用户代理的电话号码吗?

不可以,除非网关支持这个特点,WAP没有办法知道用户的电话号码。

32. 可以通过WML使得可以用WAP设备进行拨号吗?

WAP的电话功能可以使用Wireless Telephony Application Interface(WTAI)。

例如:

WMLScript: WTAPublic.MakeCall(“”); 

但是第一代的WAP设备不支持这个功能。

33. 能够从WAP设备中读取数据吗,例如:电话号码?










 

Henrik Gemal (gemal@dk.net)也有一个在线的基于WML的工具BrowserSpy,来显示更多关于HTTP头的信息、服务器环境和用户的浏览器等等。有关这个工具的详细情况可以浏览http://wap.gemal.dk/
Werner Forkel 提交了一个Perl的脚本,可以显示电话号码(如果有)。可以在以下位置测试:http://wap.colorline.no/wap-faq/apps/subnotest.wml,同样也收集在:http://wap.colorline.no/demos.html.
这些程序只适合某个网关。如果要测试其他的网关,可能就显示不出电话号码。因此电话号码不能作为ID号来处理。至少因为不是一个全球的标准。

34. 有没有办法连接到电话号码?


Make a call to +47-
 

Nokia 7110 已经有个功能叫做“Use Number”。它可以通过WML卡片查找一个类似于电话号码的列表,然后用户可以选择进行呼叫。注意用户必须分离这些数字以便它能正常工作。

35. 使用GET或者POST方式能传送多少字符?


下面仍然是一个使用GET的请求,但是使用了 来传送参数。这个代码就漂亮多了。既然可以定义为GET,同样也很容易转成POST。


直接改为POST:


最好是做测试找到到底能传输多少数据。这里有个测试程序:

http://wap.colorline.no/wap-faq/apps/putsize.php3

这个程序也可以在下面的URL中找到:http://wap.colorline.no/demos.html
该程序将产生一个卡片包含一个变量,里面包含了一定数量的字符X。用户可以选择传输是使用GET还是POST。在传输之后,脚本将要显示接收到的字符个数。
脚本生成一个页面来测试使用GET或者POST方式到底能发送多少个字符:

36. 如何同HTML站点一样POST/CGI,返回表单数据到服务器?

如果使用:


 

并且使用:

 

就可以POST数据给CGI程序了。

37. POST无法工作是怎么回事?

全部的代码,就应该像下面的代码:

” & vbCrLf & vbTab
sWMLDeck = sWMLDeck & “” & vbCrLf & “>/wml>”

38. 为什么META标签不工作?

浏览器不支持默认的meta标签,例如:


http://somewhere.com/”> 

虽然有少量网关支持非常有限的META标记。但是测试显示,如果使用了它们,网关就会出问题。例如某网关不支持普通的HTTP Cache控制,如果要实现Cache控制只好使用特殊的META标记。显然从其他网关来的用户就可能不支持这个META。注意:不要使用META tags。肯定有其他的方式来完成你的想法。

最常使用的META是:


http://somewhere.com/”> 

这个告诉浏览器重新装入指定的WML页面。WML中已经包含了一个


39. 为什么服务器接收不到用户发送的参数?

用户输入的参数或者其他参数可以像在HTML中一样通过提交方式发送到服务器。在HTML中这个是

,POST或者GET。

首先知道要知道POST和GET的区别。对于POST浏览器将生成一个数据包将变量名和它们的内容捆绑在一起,并发送到服务器。对于GET,它其实是一个URL请求,变量名和内容都包含在URL中。
对于WAP环境,要求是非常严格的,必须要根据协议来操作。虽然以下的URL

“/cgi-bin/somescript?username=john&telephone=123-123-1234&occupation=banana+bender”

“/cgi-bin/somescript?username=john&telephone=123-123-1234&occupation=banana+bender”

在这里 & 被名字实体所替换。为了解释更清楚些,请看下面的代码:





注意这不是真正的WAP协议,专门的字符应该转义,否则将得到不可预料的结果。

40. 为什么在HTTP中的Referer看不见?

 

这样就会把参考的URL发送到服务器。











发帖时间:2006-6-5 14:02:42
 作者:coolbo编辑 删除 引用   第3楼 

41. 如果没有找到URL,有可能重新将用户引导到另外一个WML卡片或者页面吗?

是的。但这是服务器端的特点,与客户端没有关系。

42. 为什么普通的HTTP 302重新导向不好使?

header(“Location: http://wap.colorline.no/clientinfo.html“);
header(“Content-type: text/vnd.wap.wml”;
?> 

Perl测试代码可以在http://wap.colorline.no/cgi-bin/302test.pl中找到。 

print “Location: http://wap.colorline.no/clientinfo.html/n“;
print “Content-type: text/vnd.wap.wml/n”; 

ASP测试代码可以在 http://www.colorline.no/302test.asp中找到。 (注意不同的URL): 

43. 可能在WML中实现ASP Session吗?

不可能。可以把信息存储在临时变量中模拟Session。Session是保存在用户PC上的“cookies”中。目前的WAP设备不支持“cookies”。不过下一代的设备和WML可能支持“cookies”。

44. WAP支持Session吗?

http://wap.colorline.no/wap-faq/archive/phplib_wml.zip

45. 可以在WAP中使用Cookies吗?

在理论上是可以的,但不是所有的WAP设备都支持。另一个方法来管理会话是使用隐藏的fields(包含会话标识,无论是POST或者GET方式)。

46. WAP支持Cookies吗?



Increase value







From:

To:

Subject:

Message body:

 

在代码中的http://some.host/mailhandler是一个CGI程序,它是服务端的脚本程序,将提交的表单转换成E-Mail格式并发送出去。
如果想使用一个类似于发信的过程,就需要编辑变量名。另外发送的数据是有限的,长信息可能需要打断。
为了演示它是如何工作的,下面的 PHP 脚本可以用来处理Mail。它将格式化WML页面,告诉用户是否发出信件。在真实的应用中,应该加入检测,例如:E-Mail的合法格式。

Mail was sent successfully

/n”);
echo(“/n”);
}
else {

// The mail could not be sent
echo(”

/n”); 

echo(”

Unable to send mail

/n”);
echo(”


/n”);
}
echo(“/n”);
?>

因为安全性的原因,以上的代码没有演示程序。

48. 可以在模拟器上操作本地的页面,却没有办法访问Internet上的,有什么问题吗?

49. 什么是PUSHing,它是如何工作的?

50. WAP模拟器说text/html不支持,但是用户的MIME设置是正确的,为什么?

51. 在哪儿有Visio移动电话的模板库?

目前唯一知道的就是它包含在 Nokia 7110 中。

52. 有没有其他有用的WML内容服务列表?

53. XML到XSL的转换可以应用到WML和WAP吗?

54. 想让用户只要简单地按下一个按钮就能够转跳到其他卡片而不是通过选择URL,这个可能吗?

不,不可能。

55. 如何避免一个行的中断以便可以在一行中输入多个链接?

在Nokia 7110中,不可能做到这一点,每个链接都占据自己的一行。



















 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/199500.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 下午12:51
下一篇 2026年3月20日 下午12:51


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号