Wap中常见Asp+Wml问题整理

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>
2. 利用Wap页面进行直接拨打电话号码
把下边的代码放到:<p></p>之间。
<input name="phone_no" format="*m" value="13"/>
<do type="option" label="&#x547C;&#x51FA;&#x53F7;">
<go href="wtai://wp/mc;$(phone_no)"/>
</do><br/>
或者直接写入电话号码的方式:
<a href="wtai://wp/mc;1331597312*">拨打电话</a>
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="http://www.51omeng.com/bicyle/bikewap/index.asp"><%=Uni("欢迎光临被爱可以")%></a><br/>
4. 关于Wap1.2的图铃下载
特举一个河北联通wap1.2下载举例
图片的下载:
<a title="确定" href="uplink:download?source=http://wap.165e.com/xx/http://www.51omeng.com/xxx/help/q.png&amp;object=phone:wallpaper&amp;size=4412&amp;status=http://wap.165e.com/xx/xx.xx/http://www.51omeng/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类:
&#61557; 加密的手机号码:被加密的手机号码,为256为字符,与手机号码一一对应。HTTP HEADER名为“deviceid”。
&#61557; 公开的手机号码,为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文件中,多个参数的传递第一个变量前为‘?’后面的参数联接符号为‘&amp;’(&符号的UTF-8形式),另外注意中文参数不能直接被正确传递。所以传递的变量一定不能为中文汉字或中文的符号。关于中文参数的传递,需要进行相应的编码。
举例如下:
<a href="site.asp?findid=bicyle&amp;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支持的图铃格式比较多,可参见相关联通移动文档或手机说明。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页