解決了!
又一次體會到成功的喜悅。發現自己還是有用的!
問題描述:
在項目開發中發現,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的時候沒有有用的結果。