隐私声明 Windows 8 魅力设置

17

我的Windows应用商店认证失败,测试人员给出的提示是:

"该应用程序已声明对网络功能的访问权限,但在Windows设置魅力中未提供隐私声明。"

有人可以给我提供解决此问题的确切代码吗?


分享一些你已经拥有的代码将有助于他人帮助你。顺便说一句,错误信息非常清楚,你需要做的是提供隐私声明,这让我想到是否应该是“如何向...提供隐私声明”。 - pedrofurla
这是你的答案:http://blog.hfarazm.com/adding-privacy-policy/#.UyHs__mSwf0 - hfarazm
这是一篇记录隐私认证失败的文章。简而言之,如果您没有使用网络,请在应用程序清单中取消选中“Internet(客户端)”功能;如果您正在使用网络,则本文告诉您隐私政策所需内容、隐私政策的表面位置以及示例代码链接。 - Muhammad Waqas Khan Abbasi
2个回答

27
在您的基础页面(或仅适用于一个个别页面),您可以像这样定义设置:
SettingsPane.GetForCurrentView().CommandsRequested += SettingsCommandsRequested;

private void SettingsCommandsRequested(SettingsPane sender, SettingsPaneCommandsRequestedEventArgs args)
{
    //use "new Guid()" instead of string "privacy" if you're experiencing an exception
    var privacyStatement = new SettingsCommand("privacy", "Privacy Statement", 
            async x => await Launcher.LaunchUriAsync(new Uri("http://some-url.com")));

    args.Request.ApplicationCommands.Clear();
    args.Request.ApplicationCommands.Add(privacyStatement);
}

显然,在这个例子中,我们将隐私政策链接到了外部页面,但是如果你想的话,可以修改代码以在应用程序内打开一个单独的页面。


1
谢谢您,这绝对是我见过的最快速的解决方案。 - iamichi
这会抛出一个警告。对于我们中将所有警告视为错误的人,可以添加 "async" 和 "await" 如下:async x => await Launcher.LaunchUriAsync(...) - Paul
你说得完全正确,@Paul。我修改了答案并添加了async/await。 - Mike Richards
1
在Win8.1中,我必须按照以下方式更改代码: SettingsCommand privacyStatement = new SettingsCommand(new Guid(), "隐私政策", async (handler) => { await Launcher.LaunchUriAsync(new Uri("http://www.mysite.com/privacy")); }); args.Request.ApplicationCommands.Clear(); args.Request.ApplicationCommands.Add(privacyStatement); - Hyndrix
1
如果我没有传递Guid作为参数,那么在运行时(Windows 8.1)我会得到一个反射异常。也许这在从Windows 8到Windows 8.1的过程中发生了变化。 - Hyndrix
显示剩余3条评论

3

看起来您的应用程序中没有包含隐私政策。这是Windows商店的要求。请查看链接以获取更多信息


3
无助:该链接仅说明您需要添加,未提供有关如何添加的任何代码。 - o0'.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接