电脑技术学习

WAP常见问题问答大全

dn001

以上的代码是输出GIF的WBMP数据流。为了使用真正的图像,必须像下面这么写:
<?
    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">nn");
    echo("<!—Code written in Microsoft NOTEPAD.EXE. (c) Espen Lyngaas 2000 Color Line ASA à n");
 ?>

<wml>
    <card id="wapclock" title="WAP Clock">
      <do type="prev" label="Reload Image">
        <go href="<?echo($PHP_SELF)?> "/>
      </do>
      <p>
        <img src="http://wap.colorline.no/wap-faq/apps/gfxclock.html?format=wbmp"
alt="You should see an image…"/>
      </p>
    </card>
  </wml>
12. 针对多大的屏幕进行开发?
WAP设备的显示状况千差万别,有些支持图形,有些只支持文本。下面给出一些型号的屏幕尺寸:Mitsubishi 还没有公布的WAP电话有3行12个字符的显示器。Nokia 7110 的屏幕是96个像素宽,65个像素高,最大的显示图像是95个像素宽,45的像素高,高和宽的比例大约是1.25。因此一个正方型应该是一个实际宽高比为1:1.25的长方形,对于圆来说也是一样。
Ericsson''s R320 有一个类似大小的显示屏幕。精确的大小是101像素宽,52像素高。可以显示4行文本,而且自动换行是默认的方式。
Ed Chew(Ed.Chew@scoot.co.uk) 检验过 “R380 Design Guideline for WAP Services”, 并且发现在Ericsson R380 有 360x120 像素的分辨率 (83x28mm),  0.23点距,浏览区域是限制在310(宽),100(高) pixels ,包括顶部的两个像素的空格,左边和右边的三个像素的空格,因此实际上只有304 x 98 像素。
为了弄清显示器到底有多大的大小,在http://wap.colorline.no/demos.html (选择 “Resolution matrix”)有一个分辨矩阵的演示程序。 页面将显示三个不同大小的图像,一个垂直和一个水平,它们是一个方向上十个像素,另外一个方向上只有一个像素,这样你马上就能知道屏幕到底有多大。另外他们的大小是:80x80,100x100 和 120x120像素,因为有些浏览器不能装载那些过大的图片。
由于有些显示器的点是长方形的,而不是正方形的,所以开发人员需要重新影射图像,让他们看起来像正方形,圆看起来像圆。但笔者不推荐这个方法,除非你知道用户所使用的WAP设备的真正比例。一个在7110上看起来很好的图到了R380上会很糟糕。
13. 在WML中可以预先装入图片吗?
在HTML中,图片可以先使用简单的JavaScript来装入。但是在WML或者WMLScript中没有这样的方法。 Paul St. George(email@paulstgeorge.com)提供了一种欺骗浏览器,让它装入图片但不显示的办法。对于图片,如果足够小,可以事先读入到WAP的Cache中。如果所有的图像都能够装入的话,就不需要连接到服务器上了。
首先需要一个能够撑满屏幕的透明图片,因此它们是一个像素宽,并且和显示屏幕具有相同的高度。将图片做成透明的,这样它将占据整个屏幕,然后装载剩下的图片,等图片装载完后timer启动,开始动画。
在下面的例子中,可能需要改变一下timer的数值,让它有时间来装入图片。
<wml>
    <card id="p" ontimer="#f1">
    <!-- Adjust this timer to taste. -->
    <timer value="10"/>
      <p align="center">
        <img src="spacer1.wbmp" alt="x"/>
      </p>
      <p>
        <img src="1.wbmp" alt="1"/>
      </p>
      <p>
        <img src="2.wbmp" alt="2"/>
      </p>
      <p>
        <img src="3.wbmp" alt="3"/>
      </p>
      <p>
        <img src="4.wbmp" alt="4"/>
      </p>
      <p>
        <img src="5.wbmp" alt="5"/>
      </p>
    </card>

<card id="f1" ontimer="#f2">
      <timer value="10"/>
      <p align="center">
        <img src="spacer15.wbmp" alt="x"/>
      </p>
      <p align="center">
        <img src="1.wbmp" alt="1"/>
      </p>
    </card>

<card id="f2" ontimer="#f3">
      <timer value="10"/>
      <p align="center">
        <img src="spacer10.wbmp" alt="x"/>
      </p>
      <p align="center">
        <img src="2.wbmp" alt="2"/>
      </p>
    </card>

<card id="f3" ontimer="#f4">
      <timer value="10"/>
      <p align="center">
        <img src="spacer08.wbmp" alt="x"/>
      </p>
      <p align="center">
        <img src="3.wbmp" alt="3"/>
      </p>
    </card>

<card id="f4" ontimer="#f5">
      <timer value="10"/>
      <p align="center">
        <img src="4.wbmp" alt="4"/>
      </p>
    </card>

<card id="f5" ontimer="#f1">
      <timer value="10"/>
      <p align="center">
        <img src="5.wbmp" alt="5"/>
      </p>
    </card>
  </wml>
14. 为什么有些WBMP无法显示?
图像可以使用<img>标签来指示。大多数无法显示的情况是因为错误地使用了<img>语法。这个标记至少要有src和alt两个参数。其他参数是可选的。src指定图像的来源,alt指定当图像不能显示的时候显示的内容,并且在最后有反斜杠结尾。
<img src="path/filename.wbmp" alt="Alternative Text"/> 
如果页面是由HTTP服务器提供的,服务器也必须设置WBMP正确的MIME类型。正确的类型是“image/vnd.wap.wbmp”。
问题也可能出在图像本身,因为WBMP的格式非常有限,只有黑白两色,而且大小要适合WAP设备。有些WAP开发工具让允许使用GIF图片,但是WAP设备只支持WBMP图片。

六、关于WAP网关的常见问答
1. 什么是WAP网关?
WAP网关是一个软件。它连接Internet或者Intranet,使得WAP电话可以来访问其中的资源。有些网关可能具有将HTML文件转换为WML页面的功能。
WAP网关在WAP设备与Web服务器之间的连接中有好多功能。这些功能基本上是:
将标记语言(WML)从文本转换成可以被WAP设备读懂的编码(二进制/压缩的)格式;
将WAP设备的请求转换成Web中的HTTP请求;
在Web和WAP之间实现SSL加密和WTLS加密的转换;
在Web和WAP之间的传输层之间实现TCP和WDP的转换。
网关还具有一些其他可选的功能,例如将Text文件,HTML文件转换成可读的WAP格式。如果网关安装在移动营运商一边,移动营运商可能利用网关加入一些特殊的信息到HTTP流中,例如电话号码,位置信息等等。
有些WAP网关是在Internet上公开的,但是另外一些是在移动营运商那边,并且经常限制只接受从营运商那边的WAP设备。
少数网关,或者像网关的设备 (“WAP Servers”)在内容提供商那边,这些人拥有WAP内容服务器。
2. 什么是WAP Server?
除了集成的WAP Gateway ,WAP Server不比普通的Web Server多太多。笔者个人认为“WAP server”这个概念非常混淆。许多人认为必须有一个WAP Server才能提供WAP的内容,但是这不正确。WAP内容可以由任何普通的Web Server提供。
那么WAP Server的要点是什么呢?当讨论到WAP的安全性的时候,WAP Server可以减少WAP环境中的安全漏洞。
既然WAP Server包含一个网关,因此可以跳过安装在移动营运商那边的第三方网关,并且主机上的应用程序对加密数据流有完全的控制能力。
注意如果要让用户能够访问网关,就需要正确的配置他们的WAP设备,大多数情况下是手工配置。
3. 在哪儿可以得到WAP网关?
Nokia的网关可以在rporate/wap">http://www.nokia.com/corporate/wap得到。
4. WAP网关是一个像Server那样的物理设备吗?它是在Internet提供商还是移动提供商那边?
WAP Gateway是一个 WinNT或者 Linux机器上运行的WAP Server软件。它可以在Internet上的任何位置,既可以在Internet提供商那边,也可以在移动提供商那边,还可以在用户的PC机上。
5. 安装Nokia WAP Toolkit后如何设置网关,拨号等等,以便可以使用用户的主页?
启动Nokia WAP Toolkit,找到 Menu>Toolkit>Preferences。 选择“Use WAP gateway”选项,给出WAP网关所在的地址(127.0.0.1, 如果在本机运行网关程序)。用户可以从Menu>Go>Load中指定URL。
6. 哪个公司提供WAP Server的源代码?
open source gateway 在 http://www.kannel.org/中提供。
7. 可以在广域网络中使用网关吗?
只要能通过拨号访问到网关的IP地址,在哪儿都是一样。
8. 在哪里能找到有关网关的资料?
在很多情况下用户可能想使用多个网关来测试应用程序。因为他们以不同的方式工作。所以可能需要连接到其他的网关,而不仅仅使用由移动营运商提供的网关。
WAPdrive.net 有一个个非常好的公共网关列表:
http://www.wapdrive.net/DOCS/wap_gateways.htm
这里面有一些没有公布的网关。如果IP地址以“10.”开头,那么网关就是私有的,是营运商自己的。其他IP地址的网关,也不一定就是公共网关。
9. 为什么HTTP User_Agent字符串在Phone.com的网关中有所不同?
如果查看从Phone.com的UP.Link网关发送给服务器的HTTP头,将发现User_Agent有所不同。UP.Link网关将名字和版本名称写在这里面。
如果用户来自Nokia或者爱立信的网关,那么User_Agent就像下面的:
EricssonR320/R1A
如果用户来自UP.Link网关,就如同下面的:
EricssonR320/R1A UP.Link/4.1.0.1
它们清楚地显示了网关的类型和版本。从这里可以清楚的知道用户所使用的网关类型和版本。

七、关于WAP浏览器的常见问答
1. 什么是微型浏览器?
类似于PC上的Internet Explorer 或者 Netscape interpret HTML。WAP微型浏览器的地位等价于一个在手持设备上运行并解释WML的软件。
2. 在移动电话上,WML最大可以是多少?
这个根据不同电话而不同。只要保持编译后的页面不要超过1400字节就可以了。
3. WAP客户端上运行的是什么操作系统?
只要客户端有WML微型浏览器,任何操作系统都可以。目标设备可以使用Windows CE、EPOC、PalmOS或者其他合适的操作系统。
4. WAP用户代理可以Cache页面吗?
Nokia 7110可以Cache页面。Cache的大小在40k左右。
5. 哪儿有更新的代理列表资源?
如何测试浏览器的方法在以上的文章中有讲述。因此现在是需要一个很大的代理列表。这个列表将帮助检测浏览器的类型。
这个文件是使用逗号分隔(Comma Separated Values)的格式。第一行是浏览器的名字,第二行是浏览器的描述。
User Agent ID 在 http://wap.colorline.no/wap-faq/useragents.php3 (注意这个文件是一个简单的ASCII文件,虽然它是以.PHP3结尾。)
这个文件可以随便拷贝。
6. 能不能通过浏览器语言的选择来本地化文本?
作为任何一个好的HTML浏览器,应该可以阅读由WAP设备配置的语言而不依赖于Web服务器向它发送了什么样的HTTP头。许多设备都这样。
HTTP头中有一个Accept-Language ,可以包含多种语言,使用逗号分开。每个标识有两个基于ISO-639的字符代码。例如en 代表English,no 代表 Norwegian等等。想了解更多关于 Accept-Language 请参考 HTTP 1.1 Reference,section 14.4。所有的语言代码可以查阅ISO-639。
下面的PHP代码显示了如何读取Accept-Language 头,并选择语言。这段代码很容易就能转成其他代码,其基本原理就是读取Accept-Language 中的前两个字符,然后依据这两个字符选择语言。
<wml>
  <card id="loc" title="Localized Text">
    <p>
    <?
      switch(substr($HTTP_ACCEPT_LANGUAGE,0,2)) {
        case "en":
          echo("Your WAP device is configured for English language");
          break;
        case "no":
          echo("Din WAP-dings er konfigurert for Norsk spr錵");
          break;
        case "sv":
          echo("Din WAP-sak 鋜 konfigurerad f鰎 Svensk spr錵");
          break;
        default:
          echo("I have no idea what language your WAP device is using..");
      }
    ?>
    </p>
  </card>
</wml> 
7. 每个WAP设备的浏览器的功能和限制是怎么样的?
所有的设备都应该遵循WAP协议,当前是WAP 1.1和WAP 1.2,但是真实的世界不是那么简单。随着WAP的进化,WAP设备开发者将尝试推动WAP协议的封版。这就让开发者的生活更加有意思,但是同样也保证了技术快速的发展。
许多设备都无法完全遵循协议,虽然在许多情况下这种差别不是很大。同样有些设备还增加了一些WAP开发者需要的特别功能。
有关协议的最好资源是在 AnyWhereYouGo。你会发现它有关于WAP设备的列表非常有用。如果用户发现某些特殊的设备,也请将数据加入到 AnyWhereYouGo 的数据库当中。
8. 不同的的电话应该使用哪个UP.browser版本?
Phone.com Developer站点有这样一个列表 。但是必须注册后才能得到这个列表。
9. 在哪儿可以下载Microsoft的Mobile Explorer?
现在知道的只有Benefon Q和Sony CMD-Z5使用 Microsoft Mobile Explorer。但是在Sony的站点只有一个简单的Flash。Benefon 的支持要好的多,可以去他们的开发区看看。
Microsoft Mobile Explorer 可以在注册之后下载。
10. Microsoft Mobile Explorer有什么特别的地方?
Microsoft Mobile Explorer或者MME是一种双模式的浏览器,他可以接受HTML和WML代码。这就产生了一个新的问题:当内容既可以使用HTML也可以使用WML的时候,如何选择呢?其实这个已经不是新问题,像Opera浏览器基本上是一个HTML浏览器但是支持WML。但是MME没有将数据类型使用正确的顺序。例如HTML比WML优先。如果浏览器检测代码是没有问题的,就应该没有问题。
经过对MME模拟器长时间的测试,笔者发现每个人都在使用错误的浏览器检测代码。许多看起来可信的事实:“Mozilla”意味着是HTML浏览器,例如:Netscape或者Internet Explore。其实有很多HTML浏览器不使用“Mozilla”来表示。相反它们询问浏览器可接受的数据类型。另外MME模拟器不支持文本的WML,只支持编译后的WML(WMLC),它需要一个(象其他的WAP设备)网关来将WML转换成WMLC。
MME同样支持JPEG和GIF格式和WBMP。另外,MME发送HTTP头中有一个 HTTP-DISPLAY-AREA 来告诉内容提供服务器的屏幕大小。
MME通过User Agent来表示自己为Mozilla/1.22兼容的设备。完整的MME模拟器字符串是:Mozilla/1.22 (compatible;MMEF20;CellPhone)。
当使用MME模拟器,记住它有两种工作模式。它直接告诉内容服务器,要么接收HTML,要么接收编码的WMLC。如果想直接使用文本WML,用户必须告诉MME网关的位置。在这个模式下所有的WAP请求通过WAP网关来处理,然后MME才能接收文本WML。
11. 能不能在浏览器中改变字体?
在很多情况下是不行的。许多浏览器支持标签来改变字体的为黑体、斜体或者大小。但是字体的类型是不会改变的。到现在还没有看到这样的浏览器出现,也没有这样的WML标签出现。
但是Morpheme却做到了一种在线的办法来改变字体,叫做 “Dwbmp” ,这实际上是使用文本书写的方式来制作和使用WBMP图片。这个工具是免费的,现在它支持六种不同的字体。
另外只有少数的设备支持图像anchors(例如:Nokia 7110),因此不能使得WBMP像文本一样可以链接。
对于那些使用 PHP 或者其他服务器端脚本语言的可以使用GD来支持,将TrueType字体甚至是Postscript转换成WBMP。

八、关于WAP手机的常见问答
1. 怎样配置手机才能浏览到Internet?
一般来说您可以先参考手机的使用说明书来进行配置。在手机配置当中有几种典型的WAP手机配置的详细说明。
2. 市场上有哪些WAP手机?
目前有Nokia 7110,Ericsson R320,Motorolar L2000www等等。随着时间的推移会有大量的新款WAP手机推出。一般来说大屏幕,高分辨率并且具有中文显示和输入的WAP手机在浏览WML网页的时候效果比较好。
3. 是不是所有的手机都能执行WAP1.1的标准,还是各有各的特性?
所有的WAP手机应当支持WAP 1.1,但是有些手机有自己不在WAP协议之内的特点。4. 国内有这样的手机卖了吗?
国内市场上已经有很多种WAP手机。但是国内还没有生产WAP手机。
5. 这样的手机大概需要多少钱?
这样的一部手机一般在2000元左右。为了使更多的人加入到WAP中来,以后手机还要降价。
6. 若WAP手机要上网,需要申请那些服务?
如果要用WAP手机上网,首先必需开通一般的通话服务、短消息服务、数据服务。当以上服务都申请好后,再进行上网设置密码。