【问题标题】:Where in Windows 8 app should you code 'privacy policy'?您应该在 Windows 8 应用程序的哪个位置编写“隐私政策”?
【发布时间】:2012-11-07 23:50:32
【问题描述】:

我的应用程序未通过认证,原因是:"4.1.1 如果您的应用程序具有网络功能,则它必须具有隐私声明 . . . 您必须在应用的描述页面以及在 Windows 设置超级按钮中显示的应用设置中提供对您的隐私政策的访问权限。”

他们在说什么?什么描述?如何设置windows设置中显示的信息?

应用程序是 C#

【问题讨论】:

  • 在最近的 MS win8 开发营中,我们被告知最简单的选择是在应用的设置魅力中添加指向您的在线隐私政策的链接。
  • 谢谢您.. 如果您能提供一个链接,我将不胜感激 - 您如何在 c# 中为“设置魅力”编写代码?这就是我的问题的答案......
  • 转到此处:msdn.microsoft.com/en-us/windows/apps/jj674832 下载 C# 实验室并查看设置演示
  • @Bobb,但调解人是超级马里奥 :)
  • 我将在他们之间每周交替回答标记:)

标签: c# xaml windows-8 microsoft-metro .net-4.5


【解决方案1】:

要添加指向您的隐私政策的链接:

//using Windows.UI.ApplicationSettings;
//using System;

// You can put this event handler somewhere in a main class that runs your app.
// I put it in may main view model.
SettingsPane.GetForCurrentView().CommandsRequested += ShowPrivacyPolicy;

// Method to add the privacy policy to the settings charm
private void ShowPrivacyPolicy(SettingsPane sender, SettingsPaneCommandsRequestedEventArgs args)
{
    SettingsCommand privacyPolicyCommand = new SettingsCommand("privacyPolicy","Privacy Policy", (uiCommand) => { LaunchPrivacyPolicyUrl(); });
    args.Request.ApplicationCommands.Add(privacyPolicyCommand);
}

// Method to launch the url of the privacy policy
async void LaunchPrivacyPolicyUrl()
{
    Uri privacyPolicyUrl = new Uri("http://www.yoursite.com/privacypolicy");
    var result = await Windows.System.Launcher.LaunchUriAsync(privacyPolicyUrl);
}

【讨论】:

    【解决方案2】:

    您应该说明您的应用是否正在收集任何信息以及您正在使用这些信息做什么。如果你不这样做,还是说吧。

    根据他们的规则,您应该在两个不同的位置展示这样的通知:

    • 在应用说明中(显然是在应用商店中可见的内容)。
    • 在设置菜单中。

    我假设后者可以是任何自定义标签或显示控件显示此类通知的文本。只需阅读section 4.1.1. here。请记住,这可以是发送到互联网的任何数据,例如高分、匹配信息或者只是一些数据更新检查。

    如果您使用某种高分列表,您可以只添加一些类似这样的通知:

    如果您愿意,此应用会将您的高分和您的昵称传输到我们的服务器。我们不会与任何第三方共享这些数据,只会将其用于编制官方高分榜。

    我不是律师,因此无法根据您的应用为您提供任何真正适当且准确的政策,但它应该让您了解他们正在寻找什么。如果您仍然不确定,请尝试检查应用是否与您的类似。

    有关设置魅力的更多信息可以在 MSDN 和 this blog post 中找到。

    【讨论】:

      【解决方案3】:

      您可以直接在代码本身中编写隐私政策,而不是打开网页链接。在 App.xaml.cs 中,粘贴以下代码

              private void OnCommandsRequested(SettingsPane sender, SettingsPaneCommandsRequestedEventArgs args)
          {
             var privacy = new SettingsCommand("PrivacyPolicy", "PrivacyPolicy", (handler) =>
                  {
                      var settings = new SettingsFlyout();
                      settings.Content = new PrivacyUserControl();
                      //settings.HeaderBrush = new SolidColorBrush(_background);
                      //settings.Background = new SolidColorBrush(_background);
                      settings.HeaderBrush = _Hbackground;
                      settings.Background = _background;
                      settings.HeaderText = "Privacy Policy";
                      settings.IsOpen = true;
                  });
      
              args.Request.ApplicationCommands.Add(privacy);
      
              UICommandInvokedHandler handler1 = new UICommandInvokedHandler(onSettingsCommand);
      
                 //  throw new NotImplementedException();
          }
      
       void onSettingsCommand(IUICommand command)
          {
              SettingsCommand settingsCommand = (SettingsCommand)command;
              ((Frame)Window.Current.Content).Navigate(typeof(HelpPage), "");
          }
      

      创建一个新的用户控件

      <UserControl
      xmlns:common="using:App.Common"
      x:Class="App.UserControl"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:local="using:App"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      mc:Ignorable="d"
      d:DesignHeight="300"
      d:DesignWidth="400">
      
      
      <Grid>
          <StackPanel >
              <TextBlock Foreground="White"  Text="Privacy Policy" FontFamily="Segoe UI" FontWeight="SemiLight" FontSize="26.667" />
              <TextBlock Margin="0,50,0,0" Foreground="White" Text="put your notes here" FontFamily="Segoe UI" FontWeight="SemiLight" FontSize="18" TextWrapping="Wrap" />
          </StackPanel>
      </Grid>
      

      【讨论】:

      • 我喜欢这个解决方案。唯一的问题是,根据 Windows 指南,您还必须在应用程序的描述页面上拥有隐私政策。所以你必须在两个地方都维护它,除非在你的用户控制下你仍然从网络上抓取它。
      【解决方案4】:

      在最近的 MS win8 开发营中,我们被告知最简单的选择是在应用的设置魅力中添加指向您的在线隐私政策的链接。

      您可以在此处找到一些 C# 实验室的动手操作:

      http://msdn.microsoft.com/en-us/windows/apps/jj674832

      其中包含一个名为“Lab_Settings_CS”的演示,您可以复制并粘贴将“关于”页面更改为“隐私政策”页面 - 它只是一个新的用户控件。

      【讨论】:

        【解决方案5】:

        如果您的应用不包含任何隐私政策并且在认证过程中您遇到相同的 4.1 错误,那么您必须遵循非常简单的步骤:

        1. 打开您的项目
        2. 在解决方案资源管理器中双击 package.appxmanifest。
        3. 打开功能选项卡。
        4. 取消选中互联网客户端。
        5. 创建应用包并上传到windows商店。

        就是这样! :)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-12-12
          • 2018-06-28
          • 2017-10-22
          • 2016-02-01
          • 2014-03-10
          • 1970-01-01
          • 2015-06-15
          • 2019-01-18
          相关资源
          最近更新 更多