WAP网站建设
WAP-WEB.CN
免费24小时咨询电话13764934678
设为主页 加入收藏
  • 首页
  • 企业WAP网站建设
  • 门户WAP网站开发
  • MOBI网站设计
  • 公益WAP网站制作
  • WAP网站成功案例
  • WAP网站定制
  • 联系我们
  • WAP

    首页>WAP资讯>详细文章

    WAP网站开发常见问题汇总

    关键字:WAP网站开发  2009-12-19 19:12:31 编辑:WAP网!

    WAP网站建设常用代码及WAP网站开发过程长犯错误,以下提供具体WAP网站设计解决方法,对于WAP开发人员有极大帮助!

    一、如何使用WAP设备发送E-Mail?
    在HTML中有一个默认的E-Mail机制: mailto: 。但在WML中不好使,因此E-Mails必须通过WML表单来解决。例如:

    <wml>
         <card id=edit title=Email Editor>
          <p>From: <input type=text name=from format=*M/></p>
          <p>To: <input type=text name=to format=*M/></p>
          <p>Subject: <input type=text name=subject format=*M/></p>
          <p>Message body: <input type=text name=body format=*M/></p>
          <p>
            <anchor>Send this mail
              <go method=post href=http://some.host/mailhandler?action=send/>
                <postfield name=from value=$(from)/>
                <postfield name=to value=$(to)/>
                <postfield name=subject value=$(subject)/>
                <postfield name=body value=$(body)/>
              </go>
           </anchor>
          </p>
       </card>
    </wml>
    在代码中的http://some.host/mailhandler是一个CGI程序,它是服务端的脚本程序,将提交的表单转换成E-Mail格式并发送出去。
    如果想使用一个类似于发信的过程,就需要编辑变量名。另外发送的数据是有限的,长信息可能需要打断。

    二、开发者需要一个WAP网关吗?
    不是很必要。如果只想进行简单的WAP内容服务,可以使用现有的Web服务器(只需要修改MIME类型)。移动电话会通过坐落在本地的网关连接到你的服务器上。
    但是在网关上驻留开发者的程序有很多好处。既然开发者的程序是网关的一个部分,开发者就可以知道呼叫号码、身份、位置等等。

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

    四、怎样防止从Cache中读取WML页面?
    <%
        Response.ContentType = text/vnd.wap.wml
        Response.Expires = -1
        Response.AddHeader Pragma, no-cache
        Response.AddHeader Cache-Control, no-cache, must-revalidate
    %> 

    五、使用META的例子经过86400秒(24 hours)后过期:
    <?xml version=1.0?>
    <!DOCTYPE wml PUBLIC -//WAPFORUM//DTD WML 1.1//EN
    http://www.wapforum.org/DTD/wml_1.1.xml>
      <wml>
        <head>
          <meta forua=true http-equiv=Cache-Control content=max-age=86400/>
        </head>
        <card id=expire1day>
          <p>This card will live in the cache for a day</p>
        </card>
      </wml>

    六、获取用户手机号码和手机型号
    用户手机号码和手机型号均在HTTP的HEADER中包含,说明如下。
    (1) 用户手机号码
    (2) 手机型号
    必须要电信部门批准的Sp/Cp才可以

    七、怎么能够知道请求是从WML浏览器来的还是HTML浏览器来的?
    获取HTTP_ACCEPT值,判断是否为VND.WAP.WML
    <%
    Response.Buffer = TRUE
      Dim IsWap
      httpAccept = LCase(Request.ServerVariables(HTTP_ACCEPT))
      if Instr(httpAccept,wap) then
      IsWap=1
      Else Response.Redirect /index.html : Response.Flush : Response.End
    End if
    %>

    <%Response.ContentType = text/vnd.wap.wml%><?xml version=1.0?>
    <%Response.Flush%>
    <!DOCTYPE wml PUBLIC -//WAPFORUM//DTD WML 1.1//EN
    http://www.wapforum.org/DTD/wml_1.1.xml>
      <wml>
      <card id=redirect>
      <onevent type=onenterforward>
      <go href=/index.wml/>
      </onevent>
      <p>
      <a href=/index.wml>enter</a>
      </p>
      </card>
      </wml>
      <%Response.Flush:Response.End%>

    八、如何判断访问者是来自哪个浏览器或者移动电话?
    可以通过检查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)。据此可以判断用户代理是什么类型的。

    九、如何利用Wap页面进行直接拨打电话号码
    <p>
    <input name=phone_no format=*m value=/>
    <anchor>立刻拨打
    <go href=wtai://wp/mc;$(phone_no) method=get>
    </go>
    </anchor>
    <br/>
    </p>
    或者直接写入电话号码的方式:
    <p>
    <a href=wtai://wp/mc;13213083428>拨打黄冠军电话</a>
    </p>

    十、Asp中Gb2312转UTF-8程序
    把下面的代码粘贴到ASP+WMl的文件中。
    <%
    Function uni(Chinese)
    For i = 1 to Len (Chinese)
    a=Mid(Chinese, i, 1)
    uni=uni & &#x & Hex(Ascw(a)) & ;
    next
    End Function
    %>
    使用方法:
    <a title=<%=Uni(确定)%> href=http://www.51omeng.com/bicyle/bikewap/index.asp><%=Uni(欢迎光临被爱可以)%></a><br/>
    <do type=prev name=Prev label=后退><prev/></do>

    十一、错误连接
    response.write <a href='http://m2p.cn/txl.asp?mobileno=&mobilenum&”&file=&file&”'>通讯录</a>
    & 替换 &
    response.write <a href='http://m2p.cn/txl.asp?mobileno=&mobileno&&page=&s2-1&&file=&file&'>上一页</a>

    十二、不能传递中文,需要编码
    ''用URLEncode方法进行编码
    strurlencode=server.URLEncode(str) //能够取出中文
    例如:response.write <a href='http://m2p.cn/kjj.asp?mobileno=&mobileno&&host=&host&&comm=&server.URLEncode(mid(v(2*i+1),1,j-1))&'>&mid(v(2*i+1),j+1,len(v(2*i+1))-j)&</a>
    ''用HTMLEncode方法进行编码
    strhtmlencode=server.HTMLEncode (str)
    拨打电话
    <a href='&wtai://wp/mc;&mid(v(2*i+1),1,j-1)&'>&mid(v(2*i+1),j+1,len(v(2*i+1))-j)&</a>

    十三、Wap不保存cashe,强制刷新
    <meta http-equiv=Cache-Control content=max-age=0 />
    <meta http-equiv=Cache-control content=no-cache />

    十四、按键上加连接
    <do type=options label=回首页>
    <go href=http://wap.un165.com/ />
    </do>

    十五、常见错误
    m3gate命令提示
    Fatal Error. Ln 10 .Col 10
    Expected end of tag ‘p’
    response.write 命令已执行</br>

    正确写法
    response.write “命令已执行”
    response.write “<br/>”

    十六、同一连接wap不能重复操作
    文本需要翻页,因为每一次点击”下一页”传递的连接是相同的
    手机不执行重复操做
    解决:方法 添加一个动态参数 &time=now

    十七、对于wap的自动换行
    <p mode='nowrap'>强制不让系统自动换行

    十八、自动刷新
    <card id=c1 ontimer=#c1>
    <timer value=20/>
    <p align=center>
    test card1
    </p>
    </card>

    十九、右返回软键
    <do type=options label=返回 name=home>
    <spawn href=XXX.wml>
    </do>
    wap服务器配置
    text/vnd.wap.wml wml image/vnd.wap.wbmp wbmp
    text/vnd.wap.wmls wmls
    application/vnd.wap.wmlc wmlc
    application/vnd.wap.wmlscriptc wmlsc
    text/vnd.wap.wmlscript wsc
    text/vnd.wap.wmlscript wmlscript
    OTA配置
    application/java-archive jar
    text/vnd.sun.j2me.app-descriptor jad

    二十、Asp动态生成Wml文件
    ASP文件头声明如下:
    <%
    Response.ContentType= text/vnd.wap.wml
    %>
    含义如下:用于声明此文件作为wml文件处理。
    程序举例:
    <%
    Response.ContentType = text/vnd.wap.wml
    %>
    <?xml version=1.0 encoding=gb2312?>
    <!DOCTYPE wml PUBLIC -//WAPFORUM//DTD WML 1.1//EN http://www.wapfourm.org/DTD/wml_1.1.xml>
    <wml>
    <card id=index title=bicyle newcontext=true>
    <p align=center>
    Wap文件实例<br/>
    </p>
    <p>
    Bicyle祝愿您在2005年实现心中的梦想。<br/>
    <a title=确定 href=trywmls.asp>wml测试</a><br/>
    <a title=确定 href=../index.asp>返回上级</a><br/>
    <a   title=确定 href=http://www.wap-web.cn>返回互动河北</a><br/>
    <a   title=确定 href=http://wap.uni-info.com.cn>返回首页</a><br/>
    </p>
    </card>
    </wml>

    二十一、Asp中Gb2312转UTF-8程序
    把下面的代码粘贴到ASP+WMl的文件中。
    <%
    Function uni(Chinese)
    For i = 1 to Len (Chinese)
    a=Mid(Chinese, i, 1)
    uni=uni & &#x & Hex(Ascw(a)) & ;
    next
    End Function
    %>
    使用方法:
    <a title=<%=Uni(确定)%> href=bicyle/bikewap/index.asp><%=Uni(欢迎光临被爱可以)%></a><br/>

    二十二、关于Wap1.2的图铃下载
    特举一个河北联通wap1.2下载举例
    图片的下载:
    <a title=确定 href=uplink:download?source=http://www.wap-web.cn/图片&object=phone:wallpaper&size=4412&status=http://www.wap-web.cn/>download</a><br/>
    若是铃声:
    object=phone:ringtone
    这个代理(http://wap.165e.com/xx)是联通提供的,当然还可以有其他的代理。目的是只有资格的cp/sp才可以使用,并且利用它下载。
    status=后边的东西文件名可以随意的。只要能够让手机访问就可以。
    我的下载后的status文件中关键的部分:
    <%Response.ContentType = text/vnd.wap.wml
    theresult=request(STATUS)
    if theresult=OK then
    download_result=Bicyle提示您,图片已经下载成功。
    else
    download_result=非常抱歉,下载失败。
    end if
    %>
    注意:OK一定是大写的,否则下载成功了,也会提示您下载失败。
    其他的为wml代码。
    在<P><%=download_result%><br/></P>显示下载结果。另外这个文件要包含一些返回链接等。

    二十三、关于获得手机号码
    举例河北联通手机号码的获得。只有被联通批准的Sp/Cp才可以。
    PhoneNumber =Request.QueryString(phonenumber)
    或:PhoneNumber =Request (phonenumber)
    其他参数无法获得手机号码的原因,可参考:
    摘自联通文档
    当用户在使用SP提供的业务时,用户的请求经过WAP平台处理后,SP服务器收到HTTP请求获取用户的手机号码和手机型号方法说明如下。
    用户手机号码和手机型号均在HTTP的HEADER中包含,说明如下。

    (1) 用户手机号码
    由于手机号码为联通公司内部资源,并且涉及到用户个人隐私,如果SP的业务需要获得用户手机号码,SP必须向中国联通提出申请,经审核通过后,中国联通配置WAP平台向SP服务器传送手机号码。
    用户手机号码分为2类:
     加密的手机号码:被加密的手机号码,为256为字符,与手机号码一一对应。HTTP HEADER名为“deviceid”。
     公开的手机号码,为133开头的11位数字:HTTP HEADER名为“x-up-calling-line-id”。(考虑与WAP1.2一致,暂定)

    (2) 手机型号
    手机型号对应的HTTP HEADER名为“user-agent”。
    如Sanyo-SCP588对应的user-agent为:Sanyo-SCP588CN/1.0 UP.Browser/6.2.2.4 (GUI) MMP/2.0
    注意,同一个手机型号,由于浏览器版本的不同,可能出现多个不同的user-agent版本,SP可以进行模糊匹配。

    二十四、关于多个参数传递
    在asp或wml文件中,多个参数的传递第一个变量前为‘?’后面的参数联接符号为‘&’(&符号的UTF-8形式),另外注意中文参数不能直接被正确传递。所以传递的变量一定不能为中文汉字或中文的符号。关于中文参数的传递,需要进行相应的编码。
    举例如下:
    <a href=site.asp?findid=bicyle&mypage=<%=iPageCurrent%>>被爱可以Wap站</a><br/>
    接收的代码:
    TheSite=request.QueryString(findid )
    MyPage =request.QueryString(mypage )
    接收完参数后就可使用了如:<p><%=TheSite%></p>

    二十五、关于Wap1.2图片格式问题
    联通的CDMA手机Wap1.2手机大部分支持的是Png格式的彩色图片和Wbmp格式的图片。
    Png图片要求:1、Png格式。2、256色。3、图片大小要在15K以内为佳。尺寸根据手机屏幕大小可定。如120*144像素
    制作方法:可以利用Photoshop或Acdsee均可以。
    对于Wap2.0支持的图铃格式比较多,可参见相关联通移动文档或手机说明。

    相关信息
    » 上一篇:WAP网站开发环境配置
    » 下一篇:如何推广WAP网站

    WAP资讯

  • 个人做网站,要注意什么?
  • 国内WAP网站空间不能使用
  • WAP个人网站发展超过800.
  • WAP网站建设常用解决方案
  • WAP网站该如何做宣传
  • 如何推广WAP网站
  • WAP网站开发常见问题汇总
  • WAP网站开发环境配置
  • 如何制作企业wap网站
  • 什么是WAP网站以及WAP网.
  • 建站咨询

  • 电话:021-20934076
  • 手机:13764934678
  • QQ:370925000
  • TQ:
  • MSN:shjiajiao@tom.com
  • 邮箱:wu.himi#Gmail.com
  • 版权所有 © 2006-2009 WAP网! 3G网站建设 WAP网站设计 WAP版本 MOBI版本
    电话:021-20934076 手机:13764934678 QQ:请说明来源WAP网!370925000 MSN:shjiajiao@tom.com