2013年2月24日 星期日

Windows Phone設置預設語言

PhoneGap雖然有提供地域和語言的相關API,但悲劇地是並不支援Windows Phone 7.5/7.8,因此需要自行添加此功能,簡單流程如下:


1. 加入已設置好各國語言的字串變數 :

var gLanguageIndex = EN; // 目前預設語言 

var ZH = 0; // 繁
var CN = 1; // 簡
var EN = 2; // 英
var JA = 3; // 日
var KO = 4; // 韓

var STR_NORMAL = new Array( "一般", "一般", "Normal", "一般", "일반" );
var STR_SHADOW = new Array( "陰影", "阴影", "Shadow", "影", "그림자" );
var STR_HALO = new Array( "光暈", "光晕", "Halo", "暈", "후광" );


2. 在任一js檔中加入設置預設語言的javascript function :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// 設置預設語言
function setDefaultLanguage( language )
{
    if ( ON_DEVICE ) // 實機
    {
        if ( language.toUpperCase().match( "TW" ) )
        {
            gLanguageIndex = TW;
        }
        else if ( language.toUpperCase().match( "CN" ) )
        {
            gLanguageIndex = CN;
        }
        else if ( language.toUpperCase().match( "EN" ) )
        {
            gLanguageIndex = EN;
        }
        else if ( language.toUpperCase().match( "JA" ) )
        {
            gLanguageIndex = JA;
        }
        else if ( language.toUpperCase().match( "KO" ) )
        {
            gLanguageIndex = KO;
        }
        else
        {
            gLanguageIndex = EN; // 預設語言
        }
    }
    else // 非實機
    {
        gLanguageIndex = TW;
    }
}


3. 在CordovaView.xaml.cs中加入設置預設語言的C# function :

1
2
3
4
5
6
7
8
9
// 設置預設語言
public void SetDefaultLanguage()
{
    String language = CultureInfo.CurrentUICulture.Name;
    Debug.WriteLine("語言:" + language);

    // 設置跟系統相同的顏色
    CordovaBrowser.InvokeScript("setDefaultLanguage", new String[1] { language }); 
}


4. 在CordovaView.xaml.cs的GapBrowser_LoadCompleted()呼叫設置預設語言的C# function :

1
2
3
4
5
6
void GapBrowser_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
    //CordovaBrowser.Opacity = 1;
    Debug.WriteLine("GapBrowser_LoadCompleted :: " );
    SetSystemColor(); // 設置系統背景顏色和色塊顏色
    SetDefaultLanguage(); // 設置預設語言

windows phone設置系統顏色


Windows Phone的一個特點是可以設置系統顏色,並體現在Live Title與各樣的APP介面,而PhoneGap並沒有提供相關的API可供呼叫,因此需要手動加入,以下是簡單的流程:

1. 寫個設置系統顏色的javascript function :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
// 設置系統顏色
function setSystemColor( accentBrushColor, backgroundBrushColor )
{
    if ( ON_DEVICE ) // 實機執行
    {
        systemBackChessColor = accentBrushColor; // 系統前景顏色
        systemBackColor = backgroundBrushColor; // 系統背景顏色
    }
    else // 非實機測試
    {
        systemBackChessColor = backChessColor;
        systemBackColor = backColor;
    }
}


2. 在 CordovaView.xaml.cs中加入設置系統顏色的 C# function :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
// 設置系統背景顏色和方塊顏色
public void SetSystemColor()
{
    SolidColorBrush accentBrush = (SolidColorBrush)Application.Current.Resources["PhoneAccentBrush"];
    String accenColor = "#" + accentBrush.Color.ToString().Substring(3);

    SolidColorBrush backgroundBrush = (SolidColorBrush)Application.Current.Resources["PhoneBackgroundBrush"];
    String backgroundColor = "#" + backgroundBrush.Color.ToString().Substring(3);

    //Debug.WriteLine("\naccenColor: " + accenColor );
    //Debug.WriteLine("\nbackgroundColor: " + backgroundColor);

    CordovaBrowser.InvokeScript( "setSystemColor", new String[2] { accenColor, backgroundColor }); // 設置跟系統相同的顏色
}


3. 在 GapBrowser_LoadCompleted() 中呼叫設置系統顏色的 C# function :

1
2
3
4
5
6
void GapBrowser_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
    //CordovaBrowser.Opacity = 1;
    Debug.WriteLine("GapBrowser_LoadCompleted :: " );
    SetSystemColor(); // 設置系統背景顏色和色塊顏色
    SetDefaultLanguage(); // 設置預設語言


4. 設置大底完成,如此每次啟動程式,都能取得目前系統顏色,再依個人喜好條配。




2013年2月19日 星期二

起始

這是一個小型專案的開發日誌,專案名為地鐵暗棋。顧名思義,這是款暗棋遊戲,而地鐵這個詞,則是描述本作的界面風格,由於最先以Windows Phone作為發展平台,因此刻意摹仿微軟近期的地鐵風格(Metro Style)。

地鐵暗棋基於PhoneGap,最終希望能跨足眼前絕大多數的移動平台,諸如iOS、Android、Windows Phone、BlackBerry等,和新興作業系統,如Windows 8和Chrome OS等。

由於僅能利用下班閒暇時間進行,因此進度不快,且在開發過程中遇到許多瓶頸,容易讓人消磨熱情,於是建立此日誌,用於紀錄開發進度與技術疑難,別做抒發之用。



2013年2月13日 星期三

High Contrast:黑底白字的另類選擇


介紹一個可讓網頁黑底白字的Chrome擴充程式:High Contrast,跟一般變色手法不同,它不是改變字體和背景的CSS色碼,而是在上頭加上一層濾鏡,別具特色,一般白底黑字網頁可轉為黑底白字,而原本就是黑底白字的網頁,則又轉為白底黑字。而且快捷鍵切換色調也相當迅速,推薦一試。