解决了!
又一次体会到成功的喜悦。发现自己还是有用的!
问题描述:
在项目开发中发现,QQ 2008官方版本 Windows Mobile 的版本。在Windows Mobile 6.5 的机器上居然无法使用 QQ 内置的浏览器访问 QQ 的 WAP 网站。
现象表现为,点击 QQ 九宫格的超链接 http://3g.qq.com , 显示空白页面。
但是同样的cab包,安装到 WM6.1 的机器上 TOSHIBA G900, Palm Tero 上都是可以正常工作的。
同样的cab包,安装到 WM6.5 的三星 i329 的机器上同样异常。
分析:
1. 可能是Device 不同的User Agent造成的。
使用Palm Tero的 UAProf /User Agent 后,问题仍旧存在。
此可能排除。
2. 用 netlog 抓包工具分析,WM6.1 正常情况下的 HTTP 交互,与WM6.5 上异常情况下的 HTTP交互。
发现 WM6.1 下能够在GET到 wml 页面之后,10秒钟跳转到 http://info13.3g.qq.com/g/s?aid=index&s_it=2&g_from=3gindex&sid=00&g_f=1283
而WM6.5 异常情况下 不会跳转。只会停留在第一个 wml 页面,而此页面只有 类似 OnTimer="http://info13.3g.qq.com/g/s?aid=index&s_it=2&g_from=3gindex&sid=00&g_f=1283" 这样的跳转语句。
所以问题锁定在wml 跳转上。
3. WML的跳转属于 WML 的render 问题。有两种可能,一种是 Microsoft WM6.5 的问题,还有一种就是 当前特定 WM6.5设备,根据 Vendor描述,有HTC的WM6.5设备是能够运行的这一线索。判断可能是当前所使用的特定WM6.5设备(当然是非HTC设备罗!)的问题。
为了验证,用WM6.5的 Device Emulator 在PC上模拟通过ActiveSync上网(上网方法见本博前文)。验证此问题。居然发现WM6.5 的模拟器也有如此问题。
4. 为了进一步验证是WM6.5的问题,用微软SDK sample MiniPIE进行调试验证。发现问题依旧。故可以断定 QQ browser用的是miniPIE的sample改的。锁定 WM6.5 和 WM6.1的区别导致该问题。
5. 然后导出 Palm 的registry 和 WM6.5 的Registry进行比较。验证了此问题。原来 WM6.5上万恶的微软用新的 WMLView7.dll 替代了 WMLView.dll 的部分功能。这两个dll共存这。但是好像 WMLView.dll 不怎么用了。
然后嘛 嘿嘿。。。两天时间。。。。证明了微软的WMLView7.dll 的跳转 BUG。可能微软认为现在很少有人用WSP的站点了。所以。。。
我要把这个问题报给微软吗?哪位能帮我?
另外如果你是通过google wmlview 到的这里,希望这篇文章对你有用!呵呵,我google wmlview的时候没有有用的结果。