作者:
hoyunxian (WildDagger)
2014-10-22 10:17:45原文已經是好一段時間的文章了
總之這邊一樣是有關於Universal App的開發
1. Windows 8.1其實也有專門的條件變數可以判斷
之前的文章有說,可以透過「WINDOWS_PHONE_APP」的條件編譯變數
去判斷現在在處理的APP其目標平台是不是Windows Phone 8.1
雖然可以用#if WINDOWS_PHONE_APP......#else......#endif
來判斷是Windows 8.1還是Windows Phone 8.1
不過依照微軟的趨勢,未來XBOX One也會加入Universal App的行列
到時候要怎麼區分XBOX One與Windows 8.1呢?
昨天在翻一篇地圖教學的時候,
看到作者有提到Windows 8.1也是有專門條件變數來判斷的
那個變數就是「WINDOWS_APP」
所以在這個情況下,判斷是否為Windows Phone 8.1/Windows 8.1的編譯條件
可以改寫為#if WINDOWS_APP......#elif WINDOWS_PHONE_APP......#endif
(注意第二個前面是寫成#elif,不是#elseif,也不是Ruby型的#elsif)
照這看來我猜XBOX One的APP編譯判斷條件應該會是「XBOX_APP」吧?
2. 其實不一定要把手機與平板做成一樣的畫面
前面有提過,Shared專案主要是放兩個平台共用的部分
所以針對手機與平板不一樣的部分,其實也不用說全部都要弄成一樣就是。
比方說手機可以是單純的塞資料,
平板跟電腦的版本則是可以管理資料之類的
(再怎麼說用平板跟電腦管理資料總比用手機方便吧(笑))
如果用以前的方式就變成要處理兩個APP,
但是Universal App的狀況下資料的部分可以合併處理,
這樣兩邊的Model就是一樣的了
(交換資料可以活用漫遊資料或者是伺服器來處理)
3. 手機上並不適用頁面裡面塞個共用Frame來共用應用程式列
前面寫過一篇文講說可以用在主畫面塞個Frame,
再讓這個Frame去讀取其他頁面以共用上方應用程式列的方法
不過這個方法前陣子測試的時候發現不適用於手機
因為手機是用Back按鈕,所以按下去的時候會變成呼叫Frame頁面的回上一頁事件
於是不管在哪個頁面按上一頁,都會跑回開始畫面
而更麻煩的是因為從suspending返回後,他還是會在剛才的那一頁
所以等於是走進死胡同不能用了(除非關掉重開,但想也知道沒人這麼有閒)
目前大致就這樣,如果還有甚麼的話會再補充的。