開發工具:
- S60 3rd Edition SDK for Symbian OS, Feature Pack 2 v1.1
- Safari + run-nightly-webkit
P.S. 本來是使用Firefox~不過其跨網域的Ajax不是很敢領教!使用了greasemonkey+BypassSecurity竟然若要Ajax續使用固定的腳本~故...還是先擺一邊...
開發專案以威寶的ODP為藍圖...
P.S.威寶的ODP為手機上的JAVA APP ...此APP可以瀏覽公司的遊戲進而讓使用者下載!
第一次開發,自己先安排一般網頁的HTML樣板..
但遇到了第一個問題,就是需使用游標一點一點的移動。。。。直到想要點的目標物件...故又暫時擺一邊....開始查詢有沒有更好的UI,直到WRTKit...
拿出了WRTKit的TravelCompanion跟RSSReader範例研讀
發現有些事情在Safari可以做...但是WRT不一定可以實現~
如...
NodeList物件的TextContent會回傳"未定義"
DOM物件的xmlDoc = parser.parseFromString(itxt + txt,"text/xml");會當機(S60 Emulator)...N95會不理你!
故針對一些功能...找尋可以共用的Code..如下:
Ajax部分:(WRT只會有異步傳輸跟GET傳送)
// retrieves data from server via ajax
// SampleCode:
// ajaxFetch(GETURL, GETARGS, processAnswerFun, true, false);// send the line to server
function ajaxFetch(url, param, callback, isXML, isPost) {
var req = new XMLHttpRequest();
req.onreadystatechange = function() {
if (req.readyState == 4 && req.status == 200) {
uiManager.hideNotification();
uiManager.showNotification(500, "info", "Complete...");
if(!isXML){
callback(req.responseText);
}else if(isXML){
callback(req.responseXML);
}else{
callback(req.responseText);
}
} else if (req.readyState == 4 && req.status != 200) {
// fetched the wrong page or network error...
var err = "Error: "+req.status;
uiManager.showNotification(3000, "warning", err);
callback(err);
}else if((req.readyState == 2 || req.readyState == 3) && req.status == 200){
uiManager.showNotification(-1, "wait", "loading...",-1);
}else{
uiManager.showNotification(-1, "wait", "loading...",-1);
}
}
if (!isPost) {
req.open("GET", url+"?"+(param), true);
req.send(null);
} else {
// POST, doesn't work in the emulator!
req.open("POST", url, true);
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
req.send("data="+encodeURIComponent(param));
}
}
DOM取某節點的值:暫無從String轉換成DOM物件的公版Code (Xml檔案請參考CateId79.xml)
//ResultData 為Dom物件(內容為CateId79.xml)
for(var i=0;i<ResultData.getElementsByTagName("Game_Name").length;i++){ // 取<Game_Name>的數量(length)
var Game_Name = ResultData.getElementsByTagName("Game_Name").item(i).firstChild.data; // 將第i個的第一個資料(.firstChild.data)取出
}
WRT UI的部份就參考WRTKit裡的documentation.html
以上暫時醬~爾後有時間或發現新的狀況再補充....
沒有留言:
張貼留言