在win8應用提交規則裡面有這麼一條:
4.1 你的應用必須符合以下隱私相關要求:4.1.1 如果你的應用支援連網使用,則它必須包含隱私權聲明如果你的應用從技術角度而言能夠傳輸任何使用者的“個人資訊”,則你必須維護一個隱私權原則。你必須在你的應用的“描述”頁中以及在顯示於 Windows設定常用鍵中的應用設定中提供對你的隱私權原則的訪問途徑。使你的應用可以連網使用的應用功能聲明包括 internetClient、internetClientServer 和 privateNetworkClientServer。你的隱私權原則必須告知使用者你的應用傳輸的個人資訊及如何使用、儲存、保護和透露該資訊,並且描述使用者對使用和共用其資訊所具有的控制權以及他們訪問其資訊的方式,並且隱私權原則符合適用的法律和法規。
因此,只要是有連網的功能,都要包含隱私權聲明。
參考了部分資料(例如:http://www.cnblogs.com/hebeiDGL/archive/2012/11/18/2775568.html)後,實現了一下隱私權的聲明。比較簡單,詳見源碼:
protected override void OnWindowCreated(WindowCreatedEventArgs args) { SettingsPane.GetForCurrentView().CommandsRequested += OnCommandsRequested; base.OnWindowCreated(args); } #region Private Methods /// <summary> /// 添加設定頁面的命令項 /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void OnCommandsRequested(SettingsPane sender, SettingsPaneCommandsRequestedEventArgs args) { // 註冊使用者觸發命令對象的回呼函數 UICommandInvokedHandler handler = new UICommandInvokedHandler(onSettingsCommand); // 建立"隱私權聲明"命令對象 SettingsCommand privacyStatement = new SettingsCommand("MyAppPrivacyStament", "隱私權聲明", handler); // 在SettingsPane中添加SeetingsCommand對象(隱私權聲明) args.Request.ApplicationCommands.Add(privacyStatement); } /// <summary> /// 響應"隱私權聲明"命令並跳轉到相關頁面 /// </summary> /// <param name="command"></param> private async void onSettingsCommand(IUICommand command) { SettingsCommand settingsCommand = (SettingsCommand)command; if (settingsCommand.Id.ToString() == "MyAppPrivacyStament") { Uri privacyPageUri = new Uri("MyPrivacyPageUrl"); await Launcher.LaunchUriAsync(privacyPageUri); } } #endregion
同時,在提交應用到商店時,在市集中的“附加條款”這一項也需要填寫隱私權聲明的頁面Url。