前二天因工作需要,上头要求做一个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.winwap
d.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

作者:菩提树下的杨过
出处:http://yjmyzz.cnblogs.com 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
 

wap开发体会<转载>的更多相关文章

  1. GJM : Taurus.MVC 2.0 开源发布:WebAPI开发教程 [转载]

    Taurus.MVC 2.0 开源发布:WebAPI开发教程 转载自http://www.cnblogs.com/cyq1162/p/6069020.html 因是新手  粘贴时有一个版权问题 本文原 ...

  2. wap开发使用jquery mobile之后页面不加载外部css样式文件/js文件

    场景: wap开发,使用jquery mobile之后不会加载外部自定义的css文件了,需要手动刷新才会加载,查看外部自定义的js文件也是一样. 解决办法: 1.在page下面添加css样式,就不要写 ...

  3. wap开发中的cookie

    安卓和ios的wap开发,安卓中的cookie可以识别中文,但是ios不能识别,需要转码成通用码(UNICODE),解决办法:直接转成16进制码, escape('测试文字') 友情链接:http:/ ...

  4. Being a (amateurish) team:团队开发体会

    0x00 Being a (amateurish) team This is the process of changing hydrogen into breathable oxygen, and ...

  5. 绝对精品推荐做前端的看下:Web前端开发体会十日谈

    20151208感悟: 前端人的角度来看的话,感觉像是阅读一个大牛前端的全部武功的一个秘籍说明,里面的思想高价值蛋白真是太多太多,推荐看. Web前端开发体会十日谈 一直想写这篇“十日谈”,聊聊我对W ...

  6. Myeclipse8.6配置android_SDK,进行android开发(转载)

    Myeclipse8.6下部署环境,总结一下个人Android环境配置的过程(首先不要急着启动Myeclipse) 1.下载SDK:http://developer.android.com/sdk/i ...

  7. 浅谈 PHP 与手机 APP 开发(API 接口开发) -- 转载

    转载自:http://www.thinkphp.cn/topic/5023.html 这个帖子写给不太了解PHP与API开发的人 一.先简单回答两个问题: 1.PHP 可以开发客户端? 答:不可以,因 ...

  8. wap开发笔记之幻灯片

    最近在进行wap站研究,发现网上成熟的wap幻灯片都很难找到,在此贴出一个iphone的幻灯效果,希望对wap站开发的人有些帮助. 点此下载

  9. 使用Xamarin实现跨平台移动应用开发(转载)

    刚在朋友圈看到张善友,转发的一条分享“使用Xamarin实现跨平台移动应用开发”,写的确实很详细得体,从收费到开源,这段时间xamarin受到不少质疑,如此文http://blog.csdn.net/ ...

随机推荐

  1. C++方式解析时间字符串和计算时间

    #include "StdAfx.h"#include "MySetTimeByVT.h" #include <ATLComTime.h>#incl ...

  2. tcp_handle_req: Made 4 read attempts but message is not complete yet - closing connection

    一.现象 测试opensips时遇到这么一个错误提示: ERROR:core:tcp_handle_req: Made read attempts but message is not complet ...

  3. 【服务器防护】centos iptables 防火墙设置 mac过滤

    1.阻止MAC地址为XX:XX:XX:XX:XX:XX主机的所有通信: iptables -A INPUT -s 192.168.1.21 -m mac --mac-source XX:XX:XX:X ...

  4. Python 爬虫实例(4)—— 爬取网易新闻

    自己闲来无聊,就爬取了网易信息,重点是分析网页,使用抓包工具详细的分析网页的每个链接,数据存储在sqllite中,这里只是简单的解析了新闻页面的文字信息,并未对图片信息进行解析 仅供参考,不足之处请指 ...

  5. RabbitMQ php 使用

    RabbitMQ是一个开源的基于AMQP(Advanced Message Queuing Protocol)标准,并且可靠性高的企业级消息系统,目前很多网站在用,包括reddit,Poppen.de ...

  6. Object-C中的类-类的声明

    1.关键字命名:为了避免与已有的c,C++关键字冲突,ObjectC关键字都有@开始: 如:@classs,@interface,@private,@try,@catch,@protocol等.  2 ...

  7. maven ArtifactTransferException:failure

    手动下载对应jar放在本地仓库 -> Update Dependencies(Maven4Myeclipse:eclipse上maven插件)

  8. CYQ聊天遇到的问题

    action.Data["yj_id"].Value  用action.Get<int>("yj_id"); 这种写法安全 如果是代码里怎么判断,a ...

  9. CXSprite.cpp文件

    #include "XSprite.h" CXSprite::CXSprite(void) { m_strPic.clear(); } CXSprite::~CXSprite() ...

  10. layoutSubviews什么时候触发调用

    ios layout机制相关方法 - (CGSize)sizeThatFits:(CGSize)size - (void)sizeToFit ——————- - (void)layoutSubview ...