我的第一個WP8.1應用總結


  我的LUMIA925已經買了很久了,想自己開發WP應用放在上面,卻一直想不到有什么特別的想法和需要。前幾天的事情正好讓我有了這個機會。

  前幾天在客戶機房工作的時候,同事打電話來說另一個客戶由於換了電腦,需要發新的激活碼過去激活我們的軟件。我不得不打開本本,把同事發到手機QQ的機器碼輸入到本本上的注冊機程序里,再把生成的激活碼輸入到手機發過去。對於在外面本本不能上網的情況這真是一件繁瑣的事。晚上在家沒事的時候就想着把這個注冊機移植到我的LUMIA925上。安裝VS補丁和激活手機開發的步驟就不贅述了,具體百度之。我在VS2013中選擇的是Windows Phone應用中的空白應用。

  先貼個圖演示一下winform版注冊機,實際用到的就是兩個Label、兩個TextBox和一個Button,用到的激活碼生成算法也很簡單,就是對機器碼做一個加salt的MD5操作。

  對照winform版的界面,再考慮手機操作的便捷性,最后WP版的效果就是這樣的:

  winform中的label替換成了WP中的TextBlock,另外再添加了兩個AppBarButton,作為“清除”和“復制”的按鈕。

  然后開始寫代碼,卻發現一下掉到兩個坑里了。。。

  坑1:WP8.1中沒有默認提供MD5CryptoServiceProvider類,只能自己實現。還好在網上搜到了前人寫好的,直接下載添加就可以用了。

  坑2:WP8.1應用商店APP竟然不支持對剪貼板的操作!!沒辦法,最后采用的是點擊“復制”按鈕,自動全選激活碼並彈出Toast通知,代碼如下:

private void btnCopy_Click(object sender, RoutedEventArgs e)
        {
            txtActivationCode.Focus(FocusState.Programmatic);
            txtActivationCode.SelectAll();

            XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText01);

            // 找到模板中“'text'”元素,然后添加通知的內容

            XmlNodeList elements = toastXml.GetElementsByTagName("text");

            elements[0].AppendChild(toastXml.CreateTextNode("激活碼已全選,請手動復制!"));

            // 通過通知的模板創建一個Toast通知

            ToastNotification toast = new ToastNotification(toastXml);

            // 彈出通知

            ToastNotificationManager.CreateToastNotifier().Show(toast);

        }

  注意1:與winform不同,在使用TextBox.SelectAll方法之前,必須先對TextBox設置焦點;

  注意2:.程序中使用Toast通知,需要在創建應用程序包之后自動生成的Package.appxmanifest中“支持Toast通知”選擇“是”。效果如下:

  終於做好了我的第一個WP應用,總算對得起我的925了,只可惜復制功能還是有缺陷,只能期望WP10里能夠修正這個問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM