WAP经验总结
时间:2023-07-12 12:37:00
WAP经验总结
包括WAP1.2和WAP2.包括移动和联通,对各种手机WML和XHTML总结支持
Nokia 3310 对do提交不显示确定性,即软按钮支持存在问题;
——————————————-
NEC N800
对input输入框有format不能输入多余属性;
字符集:我的实际测试很奇怪,GET的居然UTF-8和GB2312都可以;
支持页面内CSS ,支持背景图;
支持XTHML,WAP2.0;
选择图片链接后,很明显难看,土黄色外框;
支持滚动字
支持背景音乐
支持表格
——————————————-
三星SCH-X859(CDMA)对WAP2.支持很好,对link href=”images/style.css” mce_href=”images/style.css” rel=”stylesheet” type=”text/css” 支持写作、背景图片、背景音乐等。选择图片链接后,有一个不太明显的框但能感觉到选择;
这款手机的*键和#键是手机固化的向上向下,联通的规定无法执行;
——————————————–
Nokia 6681 (WAP2.0)对link href=”images/style.css” mce_href=”images/style.css” rel=”stylesheet” type=”text/css” 写作不支持,对图片链接的选择没有反应,看不出是选中还是不选中,进去才知道。
Nokia6670 和Nokia6681显示效果一样!6670支持的编码是UTF-8(传输也没有指定UTF-8,不是8859_1);
浏览器:Series60 版本2.6(显示效果真的很好~)
Nokia7610
不支持背景音乐()
支持滚动文本
——————————————–
Moto E680 (WAP2.0)不支持背景图的,无论添加CSS还是不加CSS。这个浏览器V2.2对页面的显示效果不是很好,连梦网都很烂~而且链接颜色不选蓝色选红色,很难看~在图片链接周围加一圈小点,选择不明显。
——————————————–
索爱 S700c 不支持背景图片,不管怎样写~ 显示字体较大~
——————————————–
关于特殊字符:
Nokia 3100 对 ※(※;) 字符显示 □
索爱K700C: 字符显示 □
——————————————–
关于测试:
最佳测试手机:NEC-N800 为什么说最好?因为这款手机可以直接查看地址,刷新地址;用于浏览wap页面看起来舒适,兼容性好;
手机测试最差:NOKIA 3100 为什么最糟糕?因为这部手机不能直接查看地址,所以必须保存书签才能查看。兼容性差,缓存小,经常出现莫名其妙的问题;屏幕也很小;
——————————————–
关于UA(手机号)问题:
正常的话都拿到UA是的,手机号不一定能拿到;
2006-04-19 更新:
广东:拿不到手机号,拿不到UA;
上海:拿不到手机号,就能拿到。UA;
北京:拿不到手机号,拿不到手机号。UA;
即使你在上海用北京的卡访问WAP,去上海的网关,一定要带北京的卡去北京,才会有效果;我试着用广东的卡去上海wap还是能拿到UA的。
——————————————–
关于session问题:
的确,有些手机不支持session是的,这种现象越来越少,但有些网关可能不支持session,这个问题可以通过程序来解决URL后带session id来解决;
若必须使用session页面中的链接url需要用URLEncode保证该页面的通用性;
使用session 服务器资源消耗量大;
——————————————–
关于重定向问题:
用WML的ontime有几个重定向timer的name相同的页面互相跳转,手机会有cache,而同一个timer只工作一次,也就是说,跳一次就再也不跳了。解决办法不同name ,或者干脆去掉这个name属性;
移动,发现采取(response.sendRedirect)当重定向到计费页面时,会丢失一些移动MISC平台带的参数无法弹出点播计费页面,特别是直接跳转到计费地址。
——————————————–
关于手机编码:
大部分手机支持UTF-8编码,但也有一些手机支持GB2312的编码的;
——————————————–
关于CSS:
并不是所有的手机都支持CSS有的,有的支持link嵌入,更多的支持直接写在页面上(移动推荐),另一个非常重要的是,CSS里面一定是小写,我试过大写对一些手机不起作用(不要相信Opera).
——————————————–
图片链接:
wap1.2和wap2.支持图片链接;
最好在图片周围加一圈白边,这样选择效果更明显;
——————————————–
关于移动:
移动全网:
2006-02-06
1 直接访问计费地址:移动计费确认页不会弹出,不会计费;
2 直接访问反向订购地址(wap.monternet.com) 订单确认页不弹出,订单关系不发送;
3 直接访问反向订购地址(wap.monternet.com),SPURL为计费地址 订单确认页不弹出,移动计费确认页弹出,计费,订单关系第一次点播;
4 直接访问反向订购地址(wap.monternet.com),SPURL其他地址(计费地址除外) 订单确认页不会弹出,订单关系不会发送;然后访问收费地址 弹出移动计费确认页,计费,首次点播发送订购关系;
5 订购关系后,直接访问计费地址 移动计费确认页不会弹出,不会计费;
6 订购关系后,通过我的梦网书签访问,访问计费地址,弹出计费确认页,计费;
7 订购关系后,通过梦网频道直接登录是一样的。
8 订购关系后,取消订购,成功!
9 通过梦网频道登陆效果和直接登陆是一样的。
无论你是先订包月后订包,还是先订包月后订包月,我梦网(收藏夹)显示的顺序都是 按次 包月。
只有订购引导订购用户MISC否则平台会直接导向SP的链接;
移动在线测试:
有专门的测试入口,测试手机号码;
8位测试业务代码10位,上线后8位;
在业务中,不要写直接重定向(程序)到计费地址,否则会丢失移动参数,导致不扣费。建议使用必须跳转的地方wml的timer跳,xhtml mp用
采用refresh如果在程序中设置背景,则会有一个带背景的空白屏幕,跳转时可以删除背景;采用timer跳转看起来更正常;
移动MISC返回错误:
【对不起,由于服务提供商900651通信故障,服务暂时无法完成。】大部分都是。SP有一次我问了服务器/程序。SPURL订购时总会出现错误;
[对不起,服务器很忙。请返回梦网主页。]。如果是订购,通常是provision处理时间过长;
【服务暂时不可用,请稍后再试。 不清楚,但我遇到过;
[权利鉴定失败。]有一次,在线测试没有使用指定的测试手机号码来访问在线测试业务。
[您暂时不能订购此业务。 你的卡里没有钱,但也可能是一种错觉,有时我认为手机卡没有钱(有些允许透支),等了一会儿就正常了。
[对不起,请求参数错误,服务暂时无法完成。]这种参数在反向订购时通常是错误的;
广东移动:
新上线业务先免费一段时间,但申报时会有计费地址等;
河南移动:
新推出的业务全部免费,三个月后按用户数量申报计费;
——————————————–
关于WML:
关于WML:
如果一个页面看样子没什么错误,可以正常显示,就是在页面的底部 将所有的wml打印出来,然后奇怪地出现在下面,比如/00/00/00 …什么,这百分之百是 多了一个〈/p〉标记
——————————————–
关于铃声:
MIDI是控制手机音源的数据。相当于乐谱的音符,本身没有声音。演奏必须依靠手机里的音色。我们必须写每首歌的每一个音符。输入各种乐器MIDI数据控制手机上的音色。目前手机还没有声源。只有AMR、MP三等波形格式可以发出人声。10首同一首歌的音符是一样的,但音色不同,只能在手机上发出一种声音。
有些手机不支持铃声格式,比如wma文件,Nokia3100显示未知格式,NEC N800显示一小句乱码,一些高端手机显示长乱码。
——————————————–
关于开发:
java.net.URLEncoder.encode(SPURL);里面的&必须换成&,否包含则encode SPURL手机上的链接通常没有反应;
POST必须注意将字符转换成字符UTF-8处理,否则会有一些GB2312字符不能直接传输(表现为查询结果为空);
——————————————–
关于WAP PUSH:
WapPush如果访问地址完全相同,那么某个手机只能收到第一个。
——————————————–
关于传说:
WAP服务指示定义在推送协议中(SI:Service Indication)和服务加载(SL:Service Load)两项服务,其中SI用户收到的方式push可根据用户意愿处理(立即或以后);SL则用户收到push不用户干涉立即上网;SL它不受欢迎push,现在很多手机都不支持,包括大部分nokia手机;
现在很多公司通过改变sms包头和内容将是普通的sms变成push发送消息WAP PUSH;
捆绑,据说当用户走到弹出确认页面时,他不想点击确认,但通过脚本(wmls),订单可以自动确定,脚本还是有客户端的,没有证据。
订购包月后按次计费;
退休后继续收费;
模拟模拟是利用短信中心的平台将源号修改为手机用户的号码,这是任意的,可以模拟1860或指定号码。但是有一个问题:就是利用这短信中心模拟的源号码只能向所有的移动用户发送消息;
◇用一些用户很感兴趣的语言将用户骗取订购,订购后则完全边了样;通常用于WAP PUSH群发;也可以杜撰业务的资费,订购后发现资费大涨;
——————————————–
关于浏览器,平台,OS,SVG:
Nokia Series30(Nokia OS) 96*65 WAP/XHTML MIDP java MMS
Nokia Series40(Nokia OS) 128*128* WAP/XHTML MIDP java MMS
Nokia Series60(Symbian OS) 176*208 WAP/XHTML MIDP java MMS
Nokia Series80(Symbian OS) 640*200 WAP/HTML Personal java MMS
Openwave SDK 6.2.2
Openwave V7
Moto v2.2
Access NF3系列
Pollex WAP Browser
诺基亚40系列是指:7600,7200,7250,7210,6100,6220,6230,6610,6650,6820,6800,6810,3100,3200,3300,5100。
诺基亚60系列是指:3650,3660,6600,7650,N-Gage。
wap2.0手机
NOKIA(诺基亚) 3100,3220,6600,6260,7610
MOTO E365,V872,C650,V180,E680,V878,V3,A768,V80,V220,A780
SONY ERICSSON P908,P910c,K506c,S700c,T238,T618,T628,T290
QT557,QT735,QT756
NEC N700,N820,N830,N710,N718,N720,N728,N110
三菱 M350,M750,M330
Panasonic X200,A500
SUMSUNG E108,E338
SIEMENS CF62,SX1
多普达 565,696,818
支持SVG的手机
SVG-enabled phones have hit the street, and this is only a beginning! Here is an updated list of phones that you can buy in your shop and come fully equipped with a compliant SVG Tiny 1.1 implementation with pictures of the main models further down:
Motorola: C975, C980, E770V, E1000, i870, V3X, V975, V980, V1050
NEC: 802
Nokia: 3250, 6265, 6280, 7710, E60, E61, E70, N70, N71, N80, N90, N91, N92
Panasonic: MX6, MX7, SA6, SA7, VS3, VS7
Sagem: my-X8, my-V76, my-V85
Samsung: D600, E350, Z300, Z500, ZV10, ZV30
Sanyo: S750
Sharp: V501SH, V601SH, V602SH, V603SH, V604SH, V703SH, V703SHf, 802, 902, V903SH
Siemens: C65, C70, C75, CF65, CFX65, CL75, CX65, CX70, CX70 Emoty, CX75, M65, M75, S65, S75, SF65, SL65, SL75, SK65, SP65
Sony Ericsson: D750, F500, K300, K500, K508, K600, K608, K700, K750, P990, S600, S700, S710, V600, V800, W550, W600, W800, W810, W900, Z500, Z520, Z800
Toshiba: TS 803, TS 921, V902T, V903T
128*128相素(S40系列 Nokia Series 40 Nokia N3100, N3108, N3200, N3300, N3510i, N3530, N5100, N5140, N6100, N6108, N6220, N6610, N6800, N6820, N7200, N7210, N7250,N6230)
120*130相素(Sharp Gx10 Gx12 Motorola V750)
120*147相素(Sharp Xera GZ100)
176*204相素(Motorola V300, V303, V400, V500 , V600,V80,E398)
176*208相素(S60 系列:是指Nokia Series 60 Nokia N7650 N3650, N3660,N6600, N6620, N7610)
176*220相素(S60 SonyEricssonK700 Z1010 Siemens SX1)
176*200相素(3G系列:是指 LG 8110 NEC 313 616 Motorola A835 176*206相素)
240*260相素(Sharp Gx20 Gx22 Gx30 Gx32)
240*260相素(vodafone P4 P5 P6 W日本手机 FOMA240*265)
1:42 | 添加评论 | 固定链接 | 引用通告 (0) | 记录它 | WAP开发
sms实现wap push的方法和格式(转载)
wap push格式
00 ’SMSC Len。用手机上设置短信中心号码
51 ’submit type
00 ’SMS_TP_Message_Reference type
0B ’对方电话的长度
A1 ’Number type
13175639296F6 ’电话号码:13573629696
00 ’SMS_TP_PID
F5 ’SMS DCS
A744 ’SMS available date
0B05040B8423F00003030101 ’Wap Push Header 1
29060603AE81EA8DCA 'Wap Push header 2
02
05 '-//WAPFORUM//DTD SI 1.0//EN
6A 'UTF-8
00
45 '
C6 '
0C 'href="http://
03 '字符串开始
687474703A2F2F3231382E35392E3133382E35343A32303030 'URL: http://218.59.138.54:2000
00 'URL 字符串结束
01 '>
03 '内容描述字符串开始
'这里就是显示给用户的内容,用utf-8编码。
9A6C5EF6671D '内容描述:马延朝
00 '内容描述字符串结束
01 '
01 '
可以只能显示很少的汉字,请高手指点怎么分包发送更多的汉字?
一下方法是经过验证的。
TrxID =一个随机数
fullStr = "0605040B8423F0" & TrxID & "0601AE"
fullStr = fullStr & "02056A0045C6080C03"
fullStr = fullStr & StrToHex(TheURL, 2)
fullStr = fullStr & "001103" & "0102"
fullStr = fullStr & "40494400080AC307" & Format(Now, "yyyymmddhhmmss")
fullStr = fullStr & "10C304" & "20990101" & "0103"
fullStr = fullStr & StrToHex(MServiceName, 2) & "000101"
分段发送的
例如 URL:wap.gd.monternet.com/?userType=B&serviceID=04020028 提示信息:神秘激情地带,江湖儿女情长神秘激情地带,江湖儿女情长神秘激情地带,江湖儿女情长
第一包:
0B05040B8423F0000355020155060403AE81EA02056A0045C60C037761702E67642E6D6F6E74657
26E65742E636F6D2F3F75736572547970653D42267365727669636549443D303430323030323800
070103E7A59EE7A798E6BF80E68385E59CB0E5B8A62CE6B19FE6B996E584BFE5A5B3E68385E995BF
E7A59EE7A798E6BF80E68385E59CB0E5B8A62C
第二包:
0B05040B8423F00003550202E6B19FE6B996E584BFE5A5B3E68385E995BFE7A59EE7A798E6BF80E6
8385E59CB0E5B8A62CE6B19FE6B996E584BFE5A5B3E68385E995BF000101 ,解释可参考WDP WSP,我就不具体说了
0B是头的总长度
05040B8423F0是固定的,表示接下来是一个WAP PUSH
分包的关键是0003550201,对应GSM 03.40里9.2.3.24.1,00表示是Concatenated Short Messages,03是长度,55是reference number,楼主在这儿固定编码会有问题的,如果同时下发两条这样的多包短信给同一个手机,手机就区分不开了,02表示分成2个短信发送,01是当前包的序号。
一个扩展包wappush包是这么构成的
WDP + WSP + SI/SL
如果长度超常(短信一个包的Content不要超过140)
就要分解成
WDP1 + (WSP+SI/SL)的part 1
WDP2 + (WSP+SI/SL)的part 2
...
WDPN + (WSP+SI/SL)的part N
如单包
WDP: 06 05 04 0B 84 23 F0
WSP: ...
SI/SL:...
双包是
第1包
WDP: 0B 05 04 0B 84 23 F0 00 03 01 02 01
Part1: ...
// 00 - UDH IE Tag
// 03 - UDH SAR IE Length
// 01 - Refrence
// 02 - Total Packet
// 01 - Current Packet
第2包
WDP: 0B 05 04 0B 84 23 F0 00 03 01 02 02
Part2:...
WDP参考相关文档。
=====================================================
首先,构造一个Push消息体:
02
05 '-//WAPFORUM//DTD SI 1.0//EN
6A 'UTF-8
00
45 '
C6 '
0C 'href="http://
03 '字符串开始
这里就是url从"http://"以后的那部分的每个字符的ASCII码
00 '字符串结束
0A 'created=
C3 '时间
07 '7个字节,也可以是04,下面就只需要年月日就可以了
20 03 01 01 00 00 00 '年,月,日,时,分,秒,格式如何一看就明白吧。
10 'si_expires=
C3 '时间
07 '跟上面一样
20 04 01 01 00 00 00
01 '>
03 '字符串开始
这里就是显示给用户的内容,用utf-8编码。
utf-8编码,英文字符直接用ascii码;中文如果unicode是(二进制)abcdefgh ijklmnop,
那么utf-8就会变成1110abcd 10efghij 10klmnop
00 '字符串结束
01 '
01 '
有了Push消息体之后,需要在前面增加一个Push PDU
81 'transaction id (connectionless WSP)
06 'pdu type (06=push)
06 'Headers len
03 AE 81 EA 'content type: application/vnd.wap.sic; charset=utf-8
8D 'content-length
XX '这里就是Push消息体的长度。如果消息体长度小于128,那么就要加上128。例如是93个字节,那么需要填入DD
'至于大于127怎么处理,按照协议好像应该是这样,例如原来的二进制abcdefgh,那么就要弄成两个字节:
'1000000a 1bcdefgh,但是尝试还没成功
在然后,还要在前面增加一个UDH
06 'User Data Header Length (6 bytes)
05 'UDH Item Element id (Port Numbers)
04 'UDH IE length (4 bytes)
0B 84 'destination port number
23 F0 'origin port number
如果所有这些加起来大于140个字节,那么就需要修改UDH头,分成两条短消息串联。但是没有尝试成功。
发送的时候,udhi=1,pid=0,dcs=4
Nokia 3650/7650肯定OK,motorola t720肯定ok,siemens 3118,3618肯定不行,其他的还没尝试。
同样的技术可以用来发送mms通知、fundown的铃声图片。
需要解决的问题:长于127字节/两条短信的时候该怎么办。
另转载 Wap push over sms 实践
通过短信进行点对点的WAP PUSH,本质上来说应该是发送一个wap页面(WBXML)到接收方,里面含有一段文字和一个url链接。
在发送端采用PDU模式发送,编码是UCS2。
整个发送的包大部分内容都是固定的,只需要对几个地方根据希望发送的内容进行一下替换即可。
我参考的例子是这样的,只用说明中红色的部分是需要变化的:
0051000BA13108086406F600F5A7850B05040B8423F0000303010129060603AE81EA8DCA02056A00
45C6080C033231312e3133362e3135332e33302f776170707573682f70757368496e6465782e6a737
03f7075736849643d3035303531313134313630353231000103E8AFB7E782B9E587BBE4BBA5E4B88B
E993BEE68EA5E88EB7E58F96E5BDA9E4BFA1E58685E5AEB9000101
00 SMSC 地址信息的长度 00表示用手机上设置短信中心号码,PDU 串的“SMSC 址格式”段和“SMSC 地址”段将省去
51 基本参数(TP-MTI/VFP) 不要求发送回复
00 消息基准值(TP-MR)
0B 对方电话的长度
A1 目标地址格式 A1表示为国内格式
3108086406F6 目标地址,补‘F’凑成偶数位后奇偶位互换 (因为手机号码是11位,需要补一个F,再将奇偶位互换,比如12345678901需要变成2143658709F1)
00 协议标识(TP-PID) 是普通GSM 类型,点到点方式
F5 用户信息编码方式 (TP-DCS)
A7 有效期(TP-VP)
85 用户信息长度(TP-UDL) (此处是从下面的0B开始所有的字节数/2对应的十六进制数)
0B WAP PUSH头部的总长度
05040B8423F0表示接下来是一个WAP PUSH
00 表示是Concatenated Short Messages
03 长度
03 reference number
01 表示分成1个短信发送
01 当前包的序号
29060603AE81EA8DCA WSP
02 标记位
05 -//WAPFORUM//DTD SI 1.0//EN
6A UTF-8
00 标记开始
45
C6
08
0C href=/"http://
03 字符串开始
3231312e3133362e3135332e33302f776170707573682f70757368496e6465782e6a73703f7075736
849643d3035303531313134313630353231 URL (编码过的URL,不带http://)
00 URL 字符串结束
01 >
03 内容描述字符串开始
E8AFB7E782B9E587BBE4BBA5E4B88BE993BEE68EA5E88EB7E58F96E5BDA9E4BFA1E58685E5AEB9 内容描述字符串 (编码过的文字内容)
00 内容描述字符串结束
01
01
AT指令发送时:
at+cmgf=0 //设置发送为二进制模式
OK
at+cmgs=93 //十进制的数字,值为 (上面生成的一大串的字节数/2)-1,还没搞清为啥要减一
> 0051000BA1。。。。。。。(就是那一大串了) Ctrl+Z
+CMGS: 14
OK
发送成功
0:42 | 添加评论 | 固定链接 | 引用通告 (0) | 记录它 | WAP开发
9月16日
WAP开发(三)
38. 为什么META标签不工作?
浏览器不支持默认的meta标签,例如:
虽然有少量网关支持非常有限的META标记。但是测试显示,如果使用了它们,网关就会出问题。例如某网关不支持普通的HTTP Cache控制,如果要实现Cache控制只好使用特殊的META标记。显然从其他
网关来的用户就可能不支持这个META。注意:不要使用META tags。肯定有其他的方式来完成你的想法。
最常使用的META是:
这个告诉浏览器重新装入指定的WML页面。WML中已经包含了一个
39. 为什么服务器接收不到用户发送的参数?
用户输入的参数或者其他参数可以像在HTML中一样通过提交方式发送到服务器。在HTML中这个是