[Titanium]在android上實現多國語言對應

titanium_android_i18n之前曾經碰過在ANDROID的時候,由於命名問題造成的錯誤。但當真正要實踐在android中的多國語言對應時才發現,並不是單單只有改檔名的問題,不只存放多國語言的XML的資料夾的位置不同,還需要透過修改AndroidManifest.xml的配合才能夠達到多國語言的目的。
在這部份,其實在appcelerator的wiki中已經有蠻清楚的說明。只是這次使用的是alloy,所以稍微記錄一下目前的目錄結構(如左)。順便也記錄一下這次在製作AndroidManifest.xml時碰到的一點點小問題。

繼續閱讀

[TITANIUM] 在android中的webview取得cookie

雖然titanium一向號稱可以使用同樣的程式碼同時製作出android跟ios的app,但實際上事情總不是這麼的歡樂….
像是一個簡單的是用twitter帳號來進行登入的動作,由於api的工程師是使用cookie跟CSRF token配對好的金鑰來跟api端進行認證,ios因為webview跟HTTPClient會自動共用cookie,所以只要在webview登入twitter後,就可以以新建立的HTTPClient來跟api索取token然後進行跟api端的互動。
只是到了android的時候,webview與HTTPClient不再自動共用cookie,所以我們得要在HTTPClient把object傳送到api之前利用setRequestHeader帶入Cookie,才有辦法取得正確的token。
所以問題就在於怎麼在登入成功的webview中,取出當時的cookie。接著google會告訴我們在這邊有這麼一個方法:

webView.addEventListener('load',function(e) {
  var cookies = webView.evalJS("document.cookie").split(";"); 
  Ti.API.info( "# of cookies -> " + cookies.length  );
  for (i = 0; i <= cookies.length - 1; i++) {
    Ti.API.info( "cookie -> " + cookies[i] );
  }
});

可惜我所得到的卻始終是空值(NULL)。
繼續閱讀

[TITANIUM] 自定模組

[TITANIUM] 自定模組
承繼之前在「[TITANIUM] ALLOY與GCM的應用」中使用Google-Cloud-Messaging-Titanium來實現android與接收GCM的訊息後。隨之而生的問題是當我們在「啟動一次app,保持在背景動作的情況下重新開機後」就收不到push了。
雖然也有網友使用0.6版可以解決問題,只是我從0.2版用到0.6版,收不到就是收不到@@
看了Google-Cloud-Messaging-Titanium的issues後,有很多人都主張重組模組。但是一開始當看到官方說明,一張落落長要安裝的工具就頭皮發麻….
繼續閱讀