2012-11-07 14 views
7

giấy chứng nhận ứng dụng của tôi không thành công với lý do: "4.1.1 Ứng dụng của bạn phải có tuyên bố về quyền riêng tư nếu có khả năng mạng . Bạn phải cung cấp quyền truy cập vào chính sách bảo mật của mình trong trang Mô tả của ứng dụng. như trong cài đặt của ứng dụng như được hiển thị trong cài đặt Windows charm. "Bạn nên viết mã 'chính sách bảo mật' ở đâu trong ứng dụng Windows 8?

Họ đang nói về điều gì? mô tả gì làm cách nào để đặt thông tin được hiển thị trong cài đặt cửa sổ?

ứng dụng là C#

+1

Tại một MS win8 devcamp gần đây, chúng tôi đã nói với tùy chọn dễ nhất là đặt liên kết đến chính sách bảo mật trực tuyến của bạn trong cài đặt quyến rũ cho ứng dụng của bạn. – peacemaker

+0

cảm ơn bạn .. tôi sẽ đánh giá cao nếu bạn có thể cung cấp liên kết đến - làm thế nào để bạn viết mã cho 'cài đặt quyến rũ' trong C#? đó sẽ là câu trả lời cho câu hỏi của tôi ... –

+0

truy cập tại đây: http://msdn.microsoft.com/en-us/windows/apps/jj674832 tải xuống phòng thí nghiệm cho C# và xem demo cài đặt – peacemaker

Trả lời

5

Bạn nên nói rõ liệu ứng dụng của bạn đang thu thập bất kỳ thông tin và những gì bạn đang làm với nó. Nếu bạn không làm như vậy, vẫn nói như vậy.

Theo quy tắc của họ, bạn đang nghĩ để hiển thị một thông báo như vậy tại hai địa điểm khác nhau:

  • Trong mô tả ứng dụng (rõ ràng những gì nhìn thấy trên app store).
  • Trong menu cài đặt.

Tôi cho rằng tùy chọn sau có thể là bất kỳ nhãn tùy chỉnh hoặc văn bản nào hiển thị kiểm soát hiển thị thông báo như vậy. Chỉ cần đọc section 4.1.1. here. Chỉ cần nhớ rằng đây có thể là bất kỳ dữ liệu nào được gửi tới internet, ví dụ: highscores, mai mối thông tin hoặc có thể chỉ là một số cập nhật kiểm tra dữ liệu.

Nếu bạn đang sử dụng một số loại danh sách điểm cao, bạn chỉ có thể bao gồm một số thông báo như thế này:

Ứng dụng này truyền điểm cao của bạn với nickname của bạn đến các máy chủ của chúng tôi nếu bạn chọn để làm như vậy. Chúng tôi sẽ không chia sẻ dữ liệu này với bất kỳ bên thứ ba nào và sẽ chỉ sử dụng nó để biên soạn danh sách điểm số chính thức cao.

Tôi không có luật sư và vì vậy không thể cung cấp cho bạn bất kỳ chính sách nào phù hợp và chính xác tùy thuộc vào ứng dụng của bạn, nhưng nó sẽ cung cấp cho bạn ý tưởng về những gì họ đang tìm kiếm. Nếu bạn vẫn không chắc chắn, hãy thử kiểm tra các ứng dụng sắp xếp các thứ tương tự cho máy của bạn.

Thông tin thêm về nét duyên dáng cài đặt có thể được tìm thấy trên MSDN và trong this blog post.

3

Tại một MS win8 devcamp gần đây, chúng tôi đã nói với tùy chọn dễ nhất là đặt liên kết đến chính sách bảo mật trực tuyến của bạn trong cài đặt quyến rũ cho ứng dụng của bạn.

Bạn có thể tìm thấy một số tay trên phòng thí nghiệm trong C# ở đây:

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

nào chứa một bản demo mang tên 'Lab_Settings_CS' mà bạn có thể sao chép và dán thay đổi 'About' để 'Chính sách bảo mật' của bạn trang - nó chỉ đơn giản là một điều khiển người dùng mới.

8

Để thêm một liên kết đến chính sách bảo mật của bạn:

//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); 
} 
5

Thay vì mở một liên kết trang web, bạn có thể trực tiếp mã chính sách bảo mật trong mã riêng của mình. Trong App.xaml.cs, dán đoạn mã sau

 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), ""); 
    } 

Tạo một điều khiển người dùng mới

<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> 

+0

I như giải pháp này Vấn đề duy nhất là theo hướng dẫn của Windows, bạn cũng phải có chính sách bảo mật trên trang Mô tả của ứng dụng. Vì vậy, bạn sẽ phải duy trì nó ở cả hai nơi, trừ khi trong điều khiển người dùng của bạn, bạn vẫn lấy nó từ web. – BryanJ

2

Nếu ứng dụng của bạn không chứa bất kỳ chính sách bảo mật và xác nhận bạn nhận được cùng một lỗi 4.1 sau đó các bước rất đơn giản bạn phải tuân theo:

  1. Mở dự án của bạn
  2. Trong trình khám phá giải pháp nhấp đúp vào package.appxmanifest.
  3. Tab khả năng mở.
  4. bỏ chọn ứng dụng khách internet.
  5. Tạo gói ứng dụng và tải lên trong cửa sổ cửa sổ.

Đó là tất cả! :)