wap开发语言

来源:互联网 发布:阿里巴巴一键上传淘宝 编辑:程序博客网 时间:2024/05/22 03:45
wap 2.0 开发语言为XHTML MP语言
wap 1.0 开发语言为,WML语言
 开发工具:vs.net2008的配置(asp支持wap2.0比较好,asp支持wap1.0的浏览器不好,总之:用jsp/asp.net开发比最好!!!
搭建测试环境(以IIS为例)
找一款好的wap浏览器,进行测试用
 开发学习:http://www.doc88.com/p-180676172176.html
 
 
 
WAP主页与HTML主页并没有太大不同。WAP用的标记语言是WML(无线标记语言)WML使用标签——就像HTML一样但WAP的语法更严格并且遵守XML 1.0标准 WML页面有扩展名.WML,就像HTML页面用扩展名.HTML.     1.首先你要建设哪种WAP网站,1.2还是2.0,2.0更美观,前者语言为WML语言,后者为XHTML MP语言。     2.手机开发工具一般所见即所得的,还没有。最常用的记事本为主,当然简单的也可以用waptor等     3.手机网站和WEB网站,使用的语言不同,因为他们面向的终端不同,一个为手机等设备,一个为电脑设备。WAP可以用WML、XHTM MP,这些语言都可以配合脚本语言,如ASP、JSP、PHP等结合开发。 WML(Wireless Markup Language - 无线标记语言)。它是一种从 HTML 继承而来的标记语言,但是 WML 基于 XML,因此它较 HTML 更严格。 WML 被用来创建可显示在 WAP 浏览器中的页面。用WML编写的页面被称为 DECKS。DECKS 是作为一套 CARDS 被构造的。 这种描述语言同我们常听说的HTML语言同出一家,都属于XML语言这一大家族。WML的语法跟XML一样,WML是XML的子集。
 

前二天因工作需要,上头要求做一个wap版的网站,到网上学习了一天,弄了个beta版出来(http://wap.luckty.com 功能很一般),整理几点经验如下:

1.wap网站用的是wml标识,非html,而且传统的javascript也不再适用,而是wmlscript,所以第一次接触的朋友们要先大概了解一下这个东东,学习资源如下:http://www.w3school.com.cn/wap/wap_intro.asp --wml学习http://www.w3school.com.cn/wmlscript/index.asp --wmlscript学习

2.找一款好的wap浏览器,普通浏览器并不能直接浏览wap网站,所以得找一个模拟器,以下是几款常用的:

a.opera 9以上版本(但好象不支持wmlscript)b.openwave c.winwapd.m3gate (个人感觉这个最好用,不过这玩意儿现在升级了,好象不太好使了,建议如果要用这个,找旧版本的测试)

3.搭建测试环境(以IIS为例)wap网站跟常规网站的不同在于,需要增加几个mime类型的支持:在iis的站点mime类型里,把.wml,.wmls,.wmlc,.wmlsc,.wbmp这五类后缀添加进去就可以了

4.vs.net2008的配置vs.net2005本来可以直接创建"Mobile WebForm"的,但到了vs2008反而将过一功能去掉了,所以需要手动下载"移动web窗体的模板",详细可参考http://www.cnblogs.com/3stones/archive/2009/01/05/1351969.html 一文

5.为方便测试,还需要强制让vs输出wml,在web.config中把下面这节内容放在<system.web>之后

 <browserCaps>      <result type="System.Web.Mobile.MobileCapabilities, System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>      <use var="HTTP_USER_AGENT"/>      preferredRenderingType = "wml11"      preferredRenderingMime = "text/vnd.wap.wml"      preferredImageMime = "image/vnd.wap.wbmp"    </browserCaps>

另外,因为wap开发中,很多常规控件都不能用,所以只能用一些最基本的移动控件,除此之外,其它开发跟常规webForm无异

 

要注意的地方:

1.传递多个参数时,不能用xxx.aspx?a=1&b=2 ,而要改成xxx.aspx?a=1&amp;b=2 ,否则在opera上无法解析

2.如果在MobilePage对应的aspx中,直接用<%="你的内容"%>,最终运行时将得不到任何输出,正确的办法是创建一个Mobile User Control,在控件里就可以这样用了,然后再把该控件放到页面里

3.Mobile控件中,没有Repeater控件,只能用Mobile:List控件来代替,但是这个东西,我个人觉得并不好用,还不如在后台直接生成字符串,然后利用2中的办法,放到自定义控件里输出

4.几乎每个Mobile控件,都有一个BreakAfter属性,默认为true,即每个控件后面会自动添加<br />标记,如果您不需要换行,把这个属性设置为false

 

首先你在做WAP首先要了解的事情:WML和XHTML 手机浏览器支持的格式,也就是所谓的WAP 1.0和WAP 2.0的区别。WAP 1.0支持的页面效果比较一般没有WAP2.0丰富。

  然后就是浏览器的准备了:

    OPera这个浏览器可以浏览WAP网站,缺点:&nbsp; 空格会原样输出看不到手机的真实效果,看到满篇的&nbsp;的确让人不爽。对WML格式要求严格.列在href &  要进行转译为&amp;不然浏览器会报错。

   firefox 火狐的强大源于插件的强烈支持。当然要火狐能支持WAP网站,就必须支持在工具添加组件

 

添加wmlbrower就可以浏览WAP网站了。

还有最后一个介绍的就是WINWAP这个对语法要求没有opera 严格,对中文支持不好,尤其在中文提交的时候服务器端要么获取乱码要么直接是空字符。这个wml中文乱码,在以后会写出自己的心得来。

 

 

----------------------------------------------------

我做wap开发有一年多了,从最初的wap1.2到wap2.0,中国联通到中国移动,期间遇到问题林林总总,积累了不少经验,为让后来者少走一些弯路,特把自己的一些心得体会写出来供大家参考。

  Wap程序可以用 Asp,Jsp,Php,Python 等开发,如果你不嫌麻烦,用C++也行。

  由于笔者以前做web开发用的是Asp,所以开发平台选用的是Asp+Sql Server。但笔者建议不要使用Asp开发,因为在提交中文字符处理上,无论是Jsp还是Python都要比Asp方便得多,当然在Wap 2.0平台下Asp已经不存在此问题了,但是在近一年内Wap1.2浏览器的手机还是会占大多数,而且不管是中国联通还是中国移动提供的一些相关接口都是用Java开发的,不言而喻用Jsp开发会方便很多。最重要的是在性能方面jsp或.net都要优于Asp,所以笔者建议大家用Jsp/Asp.Net开发Wap。

 下面我以Asp/Asp.net为例讲解:1.1. 如何在IIS上建立Wap网站1.1.1. 第一步:创建一个站点文件夹 首先你要创建一个独立于你的主站点的新的站点文件夹(若站点是建立在同一个服务器上面的话),这样你下面要做的改动才不会影响别的站点。 创建一个站点文件夹1.1.2. 第二步:在IIS 平台创建一个新的MIME类型 先选择WAP站点的属性,再加入MIME类型,然后选择HTTP Headers标签。 在MIME Map部分,点击File Type并且输入以下信息: Associated Extension MIME Typewml text/vnd.wap.wmlwmlc application/vnd.wap.wmlcwbmp image/vnd.wap.wbmpwmlsc application/vnd.wap.wmlscriptcwmls text/vnd.wap.wmlscriptwsc application/vnd.wap/wmlscriptc

  完成以后,将会显示以下几种类型: 在IIS 平台创建一个新的MIME类型

1.1.3. 第三步:现在,你就可以把你的网站内容加到站点文件夹里面了。1.2. Wap模拟器Wap模拟器有很多,公认语法检测最严格的是m3gate,使用最方便的是opera.建议大家在测试程序时用m3gate,如果它没检查出问题,基本上在手机上就不会有问题;平常浏览的话就用opera(其实它就是一个网页浏览器,只不过它能够支持wml语法),它使用起来很方便,类似于IE操作。1.3. 具体例子:1.3.1. Asp语言例子<% Response.ContentType ="text/vnd.wap.wml"%>< xml version="1.0" encoding="gb2312" ><!DOCTYPE wml PUBLIC "-//OPENWAVE.COM//DTD WML 1.3//EN" "http://www.openwave.com/dtd/wml13.dtd"><wml><card title="Wap-Asp例子"><p align="center"><img src="test.png" alt=""/></p><p> <%Response.Write("welcome")%><br/><a href="http:// wap.uni-wise.com " title="确定">返回上级</a><br/></p><do type="options" label="回首页"><go href="http://wap.uni-wise.com"/></do></card></wml>1.3.2. Asp.Net语言例子<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="Test_Wap.WebForm1" ContentType="text/vnd.wap.wml"%>< xml version="1.0" encoding="gb2312" ><!DOCTYPE wml PUBLIC "-//OPENWAVE.COM//DTD WML 1.3//EN" "http://www.openwave.com/dtd/wml13.dtd"><wml><card title="<%=name%>"><p align="center" mode="nowrap"><%Display();%></p> <do type="options" label="回首页"><go href="http://wap.uni-wise.com"/></do></card></wml>1.3.3. WebForm1.aspx.cs文件using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;

namespace Test_Wap{/// <summary>/// WebForm1 的摘要说明。/// </summary>public class WebForm1 : System.Web.UI.Page{protected string name="Wap-Asp.Net例子";private void Page_Load(object sender, System.EventArgs e){// 在此处放置用户代码以初始化页面}

protected void Display(){Response.Write("Welcome");}

#region Web 窗体设计器生成的代码override protected void OnInit(EventArgs e){//// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。//InitializeComponent();base.OnInit(e);}/// <summary>/// 设计器支持所需的方法 - 不要使用代码编辑器修改/// 此方法的内容。/// </summary>private void InitializeComponent(){ this.Load += new System.EventHandler(this.Page_Load);}#endregion}}

Wap上的业务,图铃下载类占了大部分,而且这两种业务的收入也占中国联通和中国移动Wap总收入80%还多,大家在此遇到的问题也最多.。