發表文章

目前顯示的是 4月, 2016的文章

後台訂單來的時候,進行提醒

Q1. 如何判斷有無新訂單 A1. 在"function"外頭先加入(先設定全域變數) var lastOrderId = 0 ; var lastOrderIdMax = 0 ; 然後在JSON解析時加入 if ( lastOrderId < parseInt ( value .OrderId)) { lastOrderId = parseInt ( value .OrderId); } console . log ( "最後一筆資料ID" + lastOrderId ); 解析完成後加入 if ( lastOrderIdMax < lastOrderId ) { lastOrderIdMax = lastOrderId ; console . log ( "數字最大的一筆資料ID = " + lastOrderIdMax ); waveplay (); } else { console . log ( "lastOrderIdMax = lastOrderId = " + lastOrderIdMax ); } 如此一來可以確保資料一定會是最新的一筆,唯該方是在第一次的時候,一定會判定有最新資料,所以一定會有所提示,但進入頁面後,除非有新資料進來,不然一定不會再次響起提示 Q2. 訂單來的時候改面畫面的文字 A2. 先在頁面中指定一個ID,如下為 OrderAlert ,並在Javascript中進行判斷後,修改該文字 if ( value .Status == "訂單已送出" ) { // console.log("已完成狀態" + value.Status); changeOrderAlertText( "有新訂單" ); } else { // console.log("未完成狀態" + value.Status); } /*改變現在狀態文字*/ function changeOrderAlertText ( surl ) { document

GCM推播與螢幕喚醒

上週接到要修改某點餐系統APP,花了一整天在了解GCM的推播 試著解決 Q1.螢幕關閉後不會接收到系統推播的問題 A1.若確定APP端在螢幕喚醒時能正常接收到推播,那問題有可能出在Server端 剛接收到問題時,花了一天修改程式,仍然無法解決這個問題,後來發現問題出在系統端,主因於Server端發送的指令,造成程式在處理上會有不提醒的狀態,因此修改伺服器端的程式便修正完成 Q1的問題解決後,又遇到新的問題,雖然螢幕關閉的狀態下會收到提示,但是螢幕不會喚醒來提示,似乎仍然不太符合客戶的需求,因此再進行修改WakeLock的工程 Q2. 螢幕接收到推播不會亮起 A2. 參考 http://stackoverflow.com/questions/35240524/getting-error-acquiring-wakelock-while-getting-regid-in-gcm該網址中的 // Wake Android Device when notification received 程式碼 -- // Wake Android Device when notification received PowerManager pm = ( PowerManager ) context . getSystemService ( Context . POWER_SERVICE ); final PowerManager . WakeLock mWakelock = pm . newWakeLock ( PowerManager . FULL_WAKE_LOCK | PowerManager . ACQUIRE_CAUSES_WAKEUP , "GCM_PUSH" ); mWakelock . acquire (); -- 添加入程式碼中,並做適度的修改後解決該問題 -- PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);final PowerManager.WakeLock mWakelock = pm.newWakeLock(PowerM