這篇文章提供在 Windows Phone 7 開發與上架遇到問題的處理經驗:
1. WebBrowser.NavigateToString 顯示中文亂碼
使用 WebBrowser.NavigateToString 方法顯示 HTML 内容,如下程式碼:
但執行顯示中文時亂碼,本文說明該如何處理這樣的狀況。
2. 功能 ID_CAP_MICROPHONE 無法檢測出來
提交 Windows Phone 7 的 App,程式在模擬器和實體裝置上都運作正常,但是提交時錯誤,錯誤報告內容大致上是按了某些按鈕會導致 App 當機,而這些會當機的功能,使用了錄影功能觸發閃光燈。
本文刊載於
http://www.dotblogs.com.tw/chou/archive/2013/07/27/112546.aspx
http://www.dotblogs.com.tw/chou/archive/2013/07/29/112572.aspx
在這篇文章您可以學到:
WebBrowser.NavigateToString 顯示中文亂碼
此狀況只會發生在 Windows Phone 7,在 Windows Phone 8 不會發生。
透過以下代碼,將原始 HTML 做轉換,針對字元大於 127 的部分加上 &# 開頭 ; 結尾。
public static string ConvertExtendedASCII(string strSourceHTML)
{
StringBuilder sbConvertResult = new StringBuilder();
foreach (char chr in strSourceHTML)
{
var iChr = Convert.ToInt32(chr);
if (iChr > 127)
{
sbConvertResult.AppendFormat("&#{0};", iChr);
}
else
{
sbConvertResult.Append(chr);
}
}
return sbConvertResult.ToString();
}
轉換後,顯示在 WebBrower 結果,中文正常顯示。
Windows Phone App 提交失敗,功能 ID_CAP_MICROPHONE 無法檢測出來。
這是 Windows Phone 7 特有的錯誤,測試套件不會檢測 ID_CAP_MICROPHONE 所導致,在 Windows Phone 8 不會有此問題。
開啟 Visual Studio 和 App,開啟 WMAppManifest.xml 確定功能有勾選 ID_CAP_MICROPHONE。
開啟市集測試套件
ID_CAP_MICROPHONE 沒有檢測出來,同樣的情況,在登入 Windows Phone Dev Center 進行提交 App 時,上傳 XAP 檔案後,也一樣不會被檢測出來。
問題的解決方法是開啟 App.xaml 檢視程式碼,加上以下代碼,將會作強制檢測 ID_CAP_MICROPHONE。
Microsoft.Xna.Framework.Audio.Microphone mic = null;
重建 App,重新執行市集測試套件進行測試,ID_CAP_MICROPHONE 有被檢測出來。
提交時也能檢測 ID_CAP_MICROPHONE 出來。
其他相關資訊
International UTF-8 Characters in Windows Phone 7 WebBrowser Control
http://matthiasshapiro.com/2010/10/25/international-utf-8-characters-in-windows-phone-7-webbrowser-control/