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. 設置大底完成,如此每次啟動程式,都能取得目前系統顏色,再依個人喜好條配。

沒有留言:
張貼留言