本页内容是《Wap中常见Asp+Wml问题收藏》同时我们还提供济宁地区的网站建设,百度,雅虎,google的推广,点金,商友,等营销软件
请输入关键字:

标题搜索 内容搜索  

你现在所在的位置->首页->wap->Wap中常见Asp+Wml问题收藏

Wap中常见Asp+Wml问题收藏

时间:[2010-12-29 17:25:40]     作者:请作者尽快与我们联系。

Wap中常见Asp+Wml问题

1 如何使用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格式并发送出去。

如果想使用一个类似于发信的过程,就需要编辑变量名。另外发送的数据是有限的,长信息可能需要打断。

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

不是很必要。如果只想进行简单的WAP内容服务,可以使用现有的Web服务器(只需要修改MIME类型)。移动电话会通过坐落在本地的网关连接到你的服务器上。

但是在网关上驻留开发者的程序有很多好处。既然开发者的程序是网关的一个部分,开发者就可以知道呼叫号码、身份、位置等等。

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

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

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

<%
    Response.ContentType = "text/vnd.wap.wml"
    Response.Expires = -1
    Response.AddHeader "Pragma", "no-cache"
    Response.AddHeader "Cache-Control", "no-cache, must-revalidate"
%> 

5 使用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>

6 获取用户手机号码和手机型号

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

7 怎么能够知道请求是从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%>

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

可以通过检查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)。据此可以判断用户代理是什么类型的。

9. 如何利用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>

10. 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>

我的wap开发经验总结

1. 错误连接
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>"

2. 不能传递中文,需要编码
''用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>"

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

5.按键上加连接

<do type="options" label="回首页">
<go href="http://wap.un165.com/" />
</do>

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

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

5. 同一连接wap不能重复操作

文本需要翻页,因为每一次点击”下一页”传递的连接是相同的

手机不执行重复操做
解决:方法 添加一个动态参数 &time=now

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

7 自动刷新

<card id="c1" ontimer="#c1">
<timer value="20"/>
<p align="center">
test card1
</p>
</card>

8 右返回软键

<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

获取wml源代码
http://webcab.de/fetchpage.htm

http://blog.csdn.net/bulbul2006/archive/2006/09/28/1301764.aspx
========================================
1. 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://wap.165e.com">返回互动河北</a><br/>
<a   title="确定" href="http://wap.uni-info.com.cn">返回首页</a><br/>
</p>
</card>
</wml>

3. 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/>

4. 关于Wap1.2的图铃下载

特举一个河北联通wap1.2下载举例
图片的下载:
<a title="确定" href="uplink:download?source=http://wap.165e.com/xx/http://gjmm.com/xxx/help/q.png&object=phone:wallpaper&size=4412&status=http://wap.165e.com/xx/xx.xx/http://gjmm.com/xxx/help/success.asp">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>显示下载结果。另外这个文件要包含一些返回链接等。

5. 关于获得手机号码
举例河北联通手机号码的获得。只有被联通批准的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可以进行模糊匹配。

6. 关于多个参数传递
在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>

7. 关于Wap1.2图片格式问题

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

【声明】本站刊载的《Wap中常见Asp+Wml问题收藏》一文如果有侵害你权益的情况,请联系我们。我们将及时采取措施。
QQ:44637339 Email:just6@163.com Tel:13355163107 Lining studios

友情链接

本页内容是《Wap中常见Asp+Wml问题收藏》 返回顶部
© 2001-2017 Lining studios 济宁速创科技有限公司, All Rights Reserved
 Processed Time:62.500ms