部落客廣告聯播

2011年4月25日 星期一

jQuery Mobile的history Stack與Login

故事是這樣的,在使用jQueryMobile時進入第一頁點連結進入其他頁時,
畫面上的Header左上角就會跑出'Back'回上頁的按鈕,這算是貼心的設計。

但是我現在在進入第一頁前多了一個Login頁面,
login成功後便會導向第一頁,但在此時進入第一頁,我不希望左上角有'back'按鈕
讓使用者按下後又跑回登入頁。這我該如何解決呢?

很簡單的我只要在登入頁的
多加一個data-ajax="false"屬性,就OK拉~

2011年4月20日 星期三

2011年2月24日 星期四

GAE與Google Map Geocoding API 每日2500限制




Google Map地理編碼API將一堆地址轉換成可在地圖上顯示的經緯度,程式都寫好了,沒想到在測試時才發生了QUERY_OVER_LIMIT的錯誤,回頭仔細看了下Google Map地理編碼API的文件該API有每日只能要求2500個地理位置的限制(參考Geocoding Strategies),更糟糕的是他還是IP-based的限制,也就是說在GAE這種共用基礎建設的平台上,由於IP也是共用的所以你可能連2500個都得不到(最壞的狀況是額度已經被同IP的其他人的程式用光了囧),沒辦法,畢竟是免費的,雖然說要錢的Google Maps API Premier 使用者每天最多可查詢 100,000 個要求,但我的用量不大也沒經費可拿來花在Premier上,只能想想其他辦法囉~

2011年2月21日 星期一

關於Android裡的Handler類別的使用

簡言之,可以把Handler看成是 非GUI thread 與 Activity 之間的橋樑...


實際範例及解說可參考此篇:

[Android]當透過非GUI Thread更新畫面時

2011年2月20日 星期日

台彩最新獎號小工具 發佈 (免費)

終於這幾天將Desire HD入手了,
稍作實機測試後,把之前花了點時間寫的『台彩最新獎號小工具』發布到Android Market上了。
『台彩最新獎號小工具』以小工具(Widget)形式讓您可擺放桌面上,隨時得知最新獎號,另也可查詢顯示上期、上上期之獎號。另按下開獎獎號文字可顯示該期更詳細資訊。



詳細介紹頁面如下:
https://sites.google.com/site/dolphsworkshopdolphgongfang/gong-fang-ruan-ti-ji/android-ruan-ti/tai-cai-zui-xin-jiang-haowidget

或直接前往Market頁面下載︰
https://market.android.com/details?id=idv.dolph.lottoappwidget

2011年2月15日 星期二

Android PendingIntent中放置Extra值問題

.....(略)
 Intent it=  new Intent(this , MyActivity.class);
 it.putExtra("myFlag", dynamicFlag);

PendingIntent pit= PendingIntent.getActivity(this, 0, it, 0);
 remoteViews.setOnClickPendingIntent(R.id.btnMyButton, pit);
....(略)

上列是我在寫AppWidget時的程式片段,這段程式主要是要在App Widget上的按鈕按下時,開啟某Actitity(並傳遞myFlag extra值給該Activity)以顯示所需資訊,但當我在MyActivity取得myFlag值時卻一直都是0,百思不解,後來修改程式,將PendingIntent.getActitity的最後個參數換成:
PendingIntent pit= PendingIntent.getActivity(this, 0, it, PendingIntent.FLAG_UPDATE_CURRENT);後竟然就正常了~

關於該參數該使用那個FLAG請參考:
http://developer.android.com/reference/android/app/PendingIntent.html#getActivity(android.content.Context, int, android.content.Intent, int)

http://stackoverflow.com/questions/4472447/confusing-behavior-when-starting-new-activity-with-pendingintent/5013713#5013713

2011年1月21日 星期五

Android與Google Spreadsheet Data API



今天在Android的專案中使用Google官方下載的Spreadsheet Data API jar檔,
寫了程式要從Google試算表擷取資料,沒寫到在模擬器執行時卻發生了錯誤:

  
  ERROR/AndroidRuntime(3522): *java.lang.VerifyError:  com.google.gdata.client.Service*


看來Google官方的GData API java client library似乎不能在Android上正常使用,
我寫了一個下午的程式沒想到在執行時才知道,真是浪費我的生命呀~

找了資料似乎一直沒看到有人提到在Android中存取Google Spreadsheet的java library,
在努力不懈找了許久發現了這篇網誌:


Google SpreadSheet Library for Android



網誌作者提到說自己開了個專案,主要就是開發一個能在Android上存取Google Spreadsheet的library,該專案已經hosting在Google code了:
http://code.google.com/p/google-spreadsheet-lib-android/

找時間在試試看了,先感謝這位印度的Prasanta Paul囉~

另外,Google Spreadsheet列數、欄數、儲存格數限制請參考:
http://www.google.com/support/forum/p/Google%20Docs/thread?tid=6248d49306db8a85&hl=en

2011年1月20日 星期四

2011年1月6日 星期四

GAE/J 的servlet request計時器與cron service


在GAE上寫了程式要透過cron服務排程來撈取網頁資料存進data store,
當寫好servlet直接使用瀏覽器觸發servlet url執行, 由於我撈的資料較多處理時間較常,沒想到就出現了exception了。

原來在GAE上的request是有時間限制的,若request進來處理了30秒還沒完成就會被終止並丟出exception,詳閱: http://code.google.com/intl/zh-TW/appengine/docs/java/runtime.html#The_Request_Timer。

GAE上的排程乃是經由定義cron.xml讓GAE的cron service在設定的時間點或區間觸發我們servlet程式的URL。

然而好消息是最近新的GAE1.4版,把Cron service的30秒限制拿掉了,也就是說經由Cron觸發的servlet的最大處理時限是10分鐘,太棒啦。(詳見:http://googleappengine.blogspot.com/2010/12/happy-holidays-from-app-engine-team-140.html)

另外發現許多的GAE英文文件在中文的文件中是沒有的,比如說像是Task Queue(http://code.google.com/intl/en/appengine/docs/java/taskqueue/),所以看完中文版的官方文件(http://code.google.com/intl/zh-TW/appengine/docs/)後還是要再去逛逛英文版的文件(http://code.google.com/intl/en/appengine/docs/)看看有沒有其他可參考的有用資訊~

另外有個東西讓我搞了很久,就是cron.xml裡面若有中文字可是會Deploy失敗的~

2011年1月1日 星期六