2012/04/28

[Titanium Mobile] 讀取遠端 json 檔

遠端 json 檔案內容:
{"url":"http://blog.gilbert.tw/","version":"1.0.0"}
擷取程式碼:
var xhr = Titanium.Network.createHTTPClient({
 onload: function(){
  var obj = JSON.parse(this.responseData);
  Ti.API.info('url: ' + obj.url);
  Ti.API.info('version: ' + obj.version);
 },
 onerror: function(){
  Ti.API.error('get remote json file failed.');
 },
 timeout: 5000
});
xhr.open('GET', 'http://public.gilbert.tw/blog/remotefile.json');
xhr.send();

[Titanium Mobile] 取得 app 版本編號

透過 Titanium.App 可以取得 tiapp.xml 內的設定:

  • Titanium.App.version - 版本編號
  • Titanium.App.name - app 名稱。
  • Titanium.App.id - app 編號。
  • Titanium.App.guid - app 唯一編號。

2012/04/25

Mac 下的 Android Emulator 操作

跟 Android Emulator 搞了好幾天,紀錄一下 Mac 下的指令:
(以下的 Android SDK 安裝目錄是 /Applications/android-sdk-macosx/)

開啟 Android SDK Manager
cd /Applications/android-sdk-macosx/tools
./android

開啟 AVD Manager
cd /Applications/android-sdk-macosx/tools
./android avd

建立新的 AVD
開啟 AVD Manager 之後,按下右側的「New...」按鍵。

啓動 AVD
開啟 AVD Manager 之後,挑選要執行的 AVD 之後,按下右側的「Start...」按鍵。

將 apk 安裝到 AVD 上
先啓動 AVD,再執行
cd /Applications/android-sdk-macosx/platform-tools/
./adb install /path/to/file/app.apk

開啟 AVD 之後的鍵盤操作
  • Menu - F2
  • Back - ESC
  • 改變方向 - Control + F11 或 Control + F12
  • 全螢幕 - Alt + Enter



參考資料:

2012/04/03

Mac 下 wget 的替代方案

在 unix 下習慣用 wget 抓網頁檔案,但 Mac 沒有內建 wget,因此只好用 curl 替代:
curl -O http://www.abc.com/xyz.html

2012/04/02

[Titanium Mobile] 設定 app 顯示名稱

iOS 版只要參考這篇 2012/2/17 的文章 Internationalization of App Names 實作就可以了。但如果是 Android 版,就要注意以下幾個地方:
  1. Android 的 AndroidManifest.xml 是放在 platform/android/ 目錄下,不是放在 platform/android/res/ 目錄下,不要被文章內的截圖給誤導了。
  2. AndroidManifest.xml 裡的 @string/app_name 的 app_name 要和 strings.xml 裡的 key 值一致。如果 strings.xml 是複製文章內 iOS 用的 app.xml,記得要改一下,因為 app.xml 裡的 key 是 appname,不是 app_name,少了這個底線、兩邊就兜不起來。

2012/04/01

CFBundleLocalizations is not of the required type for that key.

今日將 app 送審前進行驗證時出現以下錯誤:
CFBundleLocalizations is not of the required type for that key.
發佈到 iPhone 上測試的時候還很正常,沒想到送審時會出狀況。在 Info.plist 裡的設定:
 CFBundleLocalizations
 zh_TW
查了一下官方文件,CFBundleLocalizations 的型別是 Array,因此正確的格式應該是:
 CFBundleLocalizations
 
  zh_TW
 
但也有網友說這樣寫雖然驗證會過,但 app 執行時會無法正常啓動,建議直接把這個設定移除掉。便將 Info.plist 裡的 CFBundleLocalizations 直接刪掉,在 iPhone 上測試也沒什麼問題,再次驗證也通過了,也就順利送審了!