开发Wap中的随笔

Asp开发 联通CDMA

以下是在开发wap中的随笔,其中一些对于“老鸟”来说,谈不上什么,希望对初学者有所帮助,大家有什么小技巧,欢迎顶上来。共同学习、共同进步 ^-^
1、iis配置Wap环境
在作为wap站点的属性-->Http头-->MIME映射中添加新的文件类型,具体如下:
关联文件名 内容类型
wml text/vnd.wap.wml
wmlc application/vnd.wap.wamlc
wmls text/vnd.wap.wmlscript
wmlsc application/vnd.wap.wmlscript
wbmp image/vnd.wap.wbmp
编写一个wml文件或者使用asp编写一个动态网页
如果使用asp编写,在源码的开始添加
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Response.ContentType = "text/vnd.wap.wml; charset=utf-8"%>
编码采用utf-8
就可以使用模拟器进行浏览了。
2、wap中的编码比较严格,标签区分大小写。标签一定要对应。初学者经常犯这样的错误
3、说到标签对应就涉及到这样一个问题。当在一个表中查询记录的时候,在asp中没有记录就输出“没有记录提示”并response.end。但是在wap中不行,因为这样就不会输出</card></wml>等闭合标签。
我采用的方法是。得到记录集后

if rs.eof then
Wrong="暂时没有记录。。。"
else
'正常的进行页面显示。。。。。
end if
respong.write Wrong

</p>
</card>
</wml>
这样可以避免标签不闭合。
4、图片下载中首先一定要做到
a、图片格式要正确:有的手机支持png 有的支持gif、bmp、jpg 。(联通CDMA的大部分都支持png)
b、图片的路径要正确:绝对路径 比如http://****/PicDown/aa.png
c、图片的大小要适当:预览的图片不能超过10kb,供下载的图片不能超过30kb。(这个我也不知道有没有标准,这是我在实际测试中得到的数据),下载有些手机支持图片或者铃声可能还要大 <50kb,但是为了照顾大多数手机所以,建议<30kb。
d、图片的大小一定要和图片的名称对应,也就是说 aa.png是多么大,在其size中就写多么大,这两个是对应的。
e、有的手机在手机内存储图片达到一定数量时候,就会提示“下载个数过多”等类似提示,有的手机有预览-->保存(如:MOTO)有的没有,下载后直接保存到手机中(LG8180)。
f、判断用户下载是否成功,可以在指定的文件中获得Status,if Status=‘ok’ 则表明下载成功,进行提示下载成功、下载次数+1等操作,否则,提示下载失败。
5、wap中的分页
分页和web中是一样的,只是有些功能比较简化了,下面是常用的分页,没有写成函数是方便大家修改。

在打开记录集后写,如下代码:

<%
filepath=request.servervariables("path_info")%>
<%page=1
page=request("page")
rs.PageSize = 8 '每页的记录的条数
if Not IsEmpty(trim(Request("Page"))) then
Page = CInt(Request("Page"))
if Page > rs.PageCount then
rs.AbsolutePage = rs.PageCount
elseif Page <= 0 then
Page = 1
else
rs.AbsolutePage = Page
end if
End if
%>

然后再想显示分页的地方,一般是在记录集循环输出完毕的后面写:

<%if rs.pagecount<>1 and rs.pagecount<>0 then%>
<br/>
<%if page>rs.pagecount then%>
<a title="确定" href="<%=filepath%>?Page=<% =page -1 %>">上一页</a>
<%else%>
<%if page<>1 then %>
<a title="确定" href="<%=filepath%>?Page=<% =page -1 %>">上一页</a><br/>
<% end if %>
<a title="确定" href="<%=filepath%>?Page=<% = page + 1%>">下一页</a>
<%end if %>
<%end if
response.Write "第"&page&"页 共"&rs.pagecount&"页"
%>

注意显示的时候首先显示下一页,然后再显示上一页这和web上的习惯不太一样。

另外,如果这页的内容是显示是通过上页传送来的参数,作为条件的,则在 类似
<a title="确定" href="<%=filepath%>?Page=<% = page + 1%>">下一页</a>
的地方都要加上该参数,否则进行下一页连接的时候就会把参数丢掉。
例如:从上页用户选择的新闻的种类,来显示新闻。在List.asp页面首先写,NewType=request.form("NewType")得到用户选择的新闻的类型。
然后SQL="Select ..........where NewType='"&NewType&"'" 。完成记录集合的准备工作。注意:在进行下页面的时候要写成
<a title="确定" href="<%=filepath%>?Page=<% =page -1 %>&NewType=<%=NewType%>">上一页</a><br/>,
这样的形式,有多少条件后面跟多少条件。
但是这样就产生问题了,即时这样写NewType=request.form("NewType")也得不到NewType的值。所以在页首刚开始的地方应该写成NewType=request("NewType")。就可以实现把参数带到下一页的连接中了。

wap中上一条、下一条的问题。

在开发中,新闻、笑话、下载等业务为用户提供方便基本都需要在一条记录完成后,再提供下一条记录的操作,下面是简要的对下一条记录实现方法的描述。

比如显示新闻是国际新闻的记录,list.asp来进行显示,通过sql语句select * from NewsInfo where type='国际' ,来得到符合条件的记录集,用户在浏览过程中,当前记录的id=10,下一条记录的id是idnext=10+1=11,上一条记录的id是idpre=10-1=9,然后<a href="list.asp?id='"&IdNext&"'">上一条</a>,这样的做法是欠缺的,仅仅适用与id是连续的,也就是说所有国际新闻的id是连续的,如果国际新闻和国内新闻在表中是穿插写入的,那么你的id-1很可能是国内新闻,条件限制type='国际' 就不起作用了。

正确且简练的做法应该是这样的(可能大家还有更好的做法):

当前的id是IdNow,表NewsInfo是按照id自增的。
获得idnext=select top 1 from NewsInfo where type='国际' and id>'"&IdNow&"'
获得Idpre=select top 1 from NewsInfo where type='国际' and id<'"&IdNow&"' order by id desc

剩下的问题,就不用说了吧,注意,先显示下一条,然后显示上一条,这样才方便用户。

wap中新闻等图片和文字混排

Wap开发中,图片和文字混排,可以采用ubb编码,原理就是自己定义一共特殊的格式,采用mid和replace函数进行转换。比如定义[img][/img],表示图片的开始和结束。
但是要注意,web和wap中的区分。进行以下替换 string1all = Replace(string1all,"string1all = Replace(string1all,"" />"," "" alt=""""/></p><p>")

会使得图片居中显示。

新闻小说的分页

在wap中过长的新闻和小说,会给大家带来很大的不方便。所以要求进行分页显示,比如按照每页显示300字来举例子。

pageWordNum=300 ' 每页显示的字数,这里300可以是变量
StartWord = 1
Length=len(Content) '要显示内容的总的长度
PageAll=(Length+PageWordNum-1)\PageWordNum '该篇新闻总共可分的总页数

i=request.QueryString("i") '第几页的标记
if isnull(i) or i="" then '如果是新闻的刚开始则默认i=0
i=0
end if
Content = mid(Content,StartWord+i*PageWordNum,PageWordNum) '利用mid函数进行新闻内容的截取(mid函数的含义:从字符串中返回指定数目的字符)




<%
'开始进行分页操作
if 0<=i<PageAll then
if cint(i)<cint(PageAll)-1 then%>
<a href="ListFengshuiInfo.asp?i=<%=i+1%>">下一页</a><br/>
<%end if
if cint(i)>0 then%>
<a href="ListFengshuiInfo.asp?i=<%=i-1%>">上一页</a><br/>
<%end if
end if
%>

结束。

注意:1、 <a href="ListFengshuiInfo.asp?i=<%=i+1%>">下一页</a><br/>中ListFengshuiInfo.asp?i=<%=i+1%>可以按照你的实际环境的需要添加变量。
2、Mid函数的解释说明:
从字符串中返回指定数目的字符。
Mid(string, start[, length])
参数
string
字符串表达式,从中返回字符。如果 string 包含 Null,则返回 Null。
Start
string 中被提取的字符部分的开始位置。如果 start 超过了 string 中字符的数目,Mid 将返回零长度字符串 ("")。
Length
要返回的字符数。如果省略或 length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到字符串结束的所有字符。

时间: 2024-10-24 18:27:18

开发Wap中的随笔的相关文章

asp.net web 应用程序 开发的项目中如何开发wap网页啊!在线等。。。。。

问题描述 "asp.netweb应用程序"开发的项目中如何开发wap网页啊!只有在用"asp.net网站"开发的项目中才看到有:添加新项>>移动wap窗体 解决方案 解决方案二:移动wap窗体又不好用....解决方案三:我不管他好不好用,可以就行!!解决方案四:1.1的话直接写WML就成了2.0的话差不多写成HTML不要用带JS的控件就成了~不懂非要用微软的那个什么移动窗体做什么...VS2008都放弃了的东西...解决方案五:就像做web网站一样做移动

ASP开发WAP简易邮件系统实例

下一篇:ASP开发WAP简易邮件系统实例(续) 随着手机用户的不断增加,WAP站点如雨后春笋迅速的滋长开来,手机邮箱也不断的出现在人的眼前,笔者也曾经开发了一套手机邮箱的系统,但由于时间仓促再加上后来一直忙于工作事情,系统功能也就再未加强,今日有幸借助于IT168原创网公开出来,与大家共同分享,希望大家可以借题发挥,加强系统功能,能够更好的应用于实际. 测试软件:Opera M3gate 测试机型:Eg730+ Nokia 6681 Moto V3i 邮件组件:W3 Jmail 4.4 一.WM

ASP开发WAP简易邮件系统实例(续)

上一篇:ASP开发WAP简易邮件系统实例 3) 发送邮件 图五 发送邮件功能的实现主要采用了Jmail.Message对象完成,关于所要用到的对象相关知识在前面已经叙述过了,大家可以将上面的功能介绍与源码对照起来阅读,这样有助于理解整个邮件发送过程,当然如果将WM元素换为HTMLF元素,这样一个简单的WEB邮件发送功能也就完成了,send.asp为邮件发送页面 sendok.asp为邮件发送处理页面 Send.asp 〈% @LANGUAGE="VBSCRIPT" CODEPAGE=&

WAP中的ASP技术之二

WAP中的ASP技术 第二节:WAP基础 WAP (Wireless Application Protocol) v1.1是一种开放性规范,它试图规范移动电话访问信息和服务行业.这个规范是由WAP Forum来开发的,一个民间组织.1.2版本的WAP协议将会被认为是最后的WAP规范. 关于wap最基本的概念就是重复利用internet协议,这个协议必须很清楚地在现有的技术上轻松地调用wap服务. WAP协议利用一种很像我们电脑网络的分层结构.较低层次不太像我们常用的web应用,但是顶层还是我们的

WAP中的ASP技术之四

WAP中的ASP技术 WML基本的语言 "p" element 作用与HTML一样,只是如果你想显示文字这个就是必须的. "do" element 实际上每个WAP应用必须支持导航条.do标签最主要的type属性的值就是accept,这个意味着当你按下软键一个新的选项会被加到列表中来.label属性指定显示的文字.另外是一些选项: go - 导航到另外一个卡片或板块中去.他需要href 属性. prev - 导航到上一个卡片中去 refresh - 刷新显示. no

求助!!关于ASP.NET开发WAP问题!

问题描述 最近在用ASP.NET开发WAP这是我在ASPX中写的<%@PageLanguage="C#"ContentType="text/vnd.wap.wml"%><?xmlversion="1.0"encoding="gb2312"?><!DOCTYPEwmlPUBLIC"-//WAPFORUM//DTDWML1.1//EN""http://www.wapfor

asp.net开发wap程序必备:识别来访手机品牌型号

我们在开发wap应用程序需要有识别来访手机品牌型号的功能,这样才可以更好的为用户提供更好的个性化服务,比如图片类型.屏幕尺寸.铃声类型等.      http协议中,User-Agent这个标头指示的浏览器信息,文章最后附加了常见的手机User-Agent.      每个厂家,甚至一个厂家多个品牌的User-Agent都没有一个统一命名标准,所以处理起来相当麻烦---不停的if.比如判断某个手机的品牌     If Request.UserAgent.ToUpper.StartsWith("M

开发WAP站点之---使用PC电脑浏览器访问WAP手机站点

  3G时代来了,公司最近要求我们也要做WAP版本的站点系统了,我们平时做的WEB系统大部分都是用的HTML,而手机使用的是WML语言,虽然WML有些很类似HTML,但是还是有很多细节不同的.   开发WAP站点系统的时候,在进行测试预览的时候非常不方便,因为纯WAP站点,IE.火狐.谷歌等浏览器是不支持的,所以大门户的WAP网站都会自动判断,如果使用PC浏览器访问,会自动跳到一个页面,只有使用手机浏览器访问,才会显示手机网页页面,主要是考虑到兼容性,像腾讯的就是如此,如果你用IE访问http:

应用Java技术开发WAP应用程序

程序 我们还是采用Tomcat作为web服务器,如果你对如何使用tomcat还不熟悉请参考相关资料.通常我们开发WAP应用程序的时候都是手写wml脚本,其实我们可以借助java的Servlet/jsp技术开发WAP应用程序.通常我都是使用Lomboz插件在eclipse的环境下写servlet/jsp文件的.先看下面的waptest.jsp文件和WapServlet.java文件 <?xml version="1.0"?><!DOCTYPE wml PUBLIC &q