Windows 8ã§ã¯ãã¡ããã¢ããªã±ãŒã·ã§ã³ã§ãã¢ããªã±ãŒã·ã§ã³éã§ããŒã¿ã転éïŒå
±æïŒããæ©èœãç»å ŽããŸããã å°æ¥ãç°¡åã«ããããã«ããã®èšäºã§ã¯ã
å
±æ ããšããçšèªã䜿çšããŸãã
ã»ãã¥ãªãã£äžã®çç±ããããŠãŒã¶ãŒã¯ããŒã¿è»¢éãå¶åŸ¡ãã察å¿ããå
±æãã£ãŒã ã䜿çšããŠãµã€ãããã«ããåŒã³åºãããŸã

ãŸãã¯ããŒããŒãã·ã§ãŒãã«ããã®Win + H
äŸãšããŠãå°å³ããæ°ã«å
¥ãã®åçããã¡ãŒã«ã¢ããªã±ãŒã·ã§ã³ããã€ãã¿ãŒã«äœçœ®æ
å ±ã転éããæ©èœããããŸãã
å
±æå¥çŽã®å®è£
ã¯ãéåžžã«åŒ·åãªããŒã±ãã£ã³ã°ããŒã«ã«ãªãå¯èœæ§ããããŸãã ã²ãŒã ãã¢ããªã±ãŒã·ã§ã³ã§ã®ææãå人ãšå
±æããæ©äŒãæäŸããããšã§ãã¢ããªã±ãŒã·ã§ã³ã®äººæ°ãé«ããããšãã§ããŸãã
ããã§ã¯ãããŒã¿ããå
±æãããã¢ããªã±ãŒã·ã§ã³ã®
ãããã€ããŒã¢ããªã±ãŒã·ã§ã³ãšããçšèªã䜿çšããŸãã ãããŠ
ãå
±æããŒã¿ãåä¿¡ã§ããã¢ããªã±ãŒã·ã§ã³ã®
åä¿¡åŽã¢ããªã±ãŒã·ã§ã³ã
ãã®èšäºã¯éåžžã«èšå€§ã§ããããšãå€æããŸãããèšäºã®æŠèŠã¯æ¬¡ã®ãšããã§ãã
å
±æã ããŒã¿ãããã€ããŒ
å
±æã ããŒã¿åä¿¡è
ã
æšæºåœ¢åŒã®éåä¿¡ã
ããã¹ãããŒã¿åœ¢åŒã®éåä¿¡ã
ãªã³ã¯ã®éåä¿¡
ã°ã©ãã£ãã¯ã®éåä¿¡
ãã¡ã€ã«ã®éåä¿¡
éæšæºããŒã¿åã®éåä¿¡
æååã§ã®ã·ãªã¢ã«åã䜿çšãããªããžã§ã¯ãã®éåä¿¡
æšæºãéæšæºã¿ã€ããã Schema.orgããŒã¹ã®ã¹ããŒãããŒã¿
ãã€ããªããŒã¿ã®éåä¿¡
é
延ããŒã¿éä¿¡ïŒããŒã¿ãããã€ããŒè»¢éïŒã
倧éã®ããŒã¿ïŒé³æ¥œããããªïŒã®è»¢éã®é©åãªç·šæ
å
±æããã«ãžã®ãªã³ã¯ã®è¿œå ïŒã¯ã€ãã¯ãªã³ã¯ïŒ
è«çãšã©ãŒãåŠçããŸãã
ããŒã¿å
±æã®æ¹åã çµ±èšåé
å
±æã«é¢ããäžè¬çãªæšå¥šäºé
ã å®è£
ã®ãšã©ãŒãåé¿ããŸãã
ãããã€ããŒã¢ããªã±ãŒã·ã§ã³ã®æšå¥šäºé
ã
ãããã€ããŒã¢ããªã±ãŒã·ã§ã³ã®æšå¥šäºé
ã
å
±æå¥çŽã®è©³çŽ°ãªç 究ã«ã€ããŠã¯ãMSDNã§2ã€ã®åªããå®è£
äŸãããŠã³ããŒãããããšããå§ãããŸãã
ã³ã³ãã³ããœãŒã¹ã¢ããªã®å
±æãµã³ãã«ã³ã³ãã³ãã¿ãŒã²ããã¢ããªã®ãµã³ãã«ã®å
±æå
±æã ããŒã¿ãããã€ããŒãããŒã¿ãé
ä¿¡ããã¢ããªã±ãŒã·ã§ã³ã®å®è£
ã¯éåžžã«ç°¡åã§ãã ããã¹ãããå
±æãããããšããŸãã
OnNavigatedToã¡ãœããã®ããŒãžã§ãããŒã¿å
±æã®
èŠæ±ãã³ãã©ãŒãè¿œå ããŸãã OnNavigatingFromã¡ãœããã®å
±æã€ãã³ããããµãã¹ã¯ã©ã€ãã解é€ããŸã
protected override void OnNavigatedTo(NavigationEventArgs e) { DataTransferManager.GetForCurrentView().DataRequested += Share_DataRequested; } protected override void OnNavigatingFrom(NavigatingCancelEventArgs e) { DataTransferManager.GetForCurrentView().DataRequested -= Share_DataRequested; }
ãã³ãã©ãŒã§ããå
±æãããããŒã¿ãæå®ã§ããŸãã ããçš®ã®ããã¹ããå
¬éããããšããŸãã
void Share_DataRequested(DataTransferManager sender, DataRequestedEventArgs args) { args.Request.Data.Properties.Title = "Simple notepad"; args.Request.Data.Properties.Description = "Publication of the text"; args.Request.Data.SetText("Hello! World!"); }
Titleããããã£ã¯å¿
é ã§ããæå®ããªããšãããŒã¿ããå
±æãããããšãããšãšã©ãŒãçºçããŸãã åæã«ãDescriptionããããã£ã¯ãªãã·ã§ã³ã§ãã
ããã§ãããŒã¿å
±æãåŒã³åºããšãããŒã¿ãåãå
¥ããããšãã§ããã¢ããªã±ãŒã·ã§ã³ãéžæããããã®ææ¡ãå«ãå³åŽã®ããã«ã衚瀺ãããŸãã

ã¡ãŒã«ã¢ããªã±ãŒã·ã§ã³ãéžæãããšãæçŽã®ããã¹ãããã§ã«èšå
¥ãããŠãããã©ãŒã ãåãåããéä¿¡è
ãéžæããããšã§æçŽãéä¿¡ã§ããŸãã æåã®2ã€ã®ãã€ã³ãã¯ãã¡ãŒã«ã¢ããªã±ãŒã·ã§ã³ã®ä»¥åã®ã¢ã¯ãã£ããŒã·ã§ã³ããæ®ã£ãŠããŸãã
å
±æã åä¿¡æ©ããŒã¿ãããã€ããŒã®ãã¬ã·ãŒããŒãã®ã¬ã·ãŒããŒã¢ããªã±ãŒã·ã§ã³ã®å®è£
ãéåžžã«ç°¡åã§ãã ããã§ã¯ãã¹ã¿ãžãªã§æ¢è£œã®ãã³ãã¬ãŒãã䜿çšã§ããŸãã

ãã®ãã³ãã¬ãŒããéžæãããšãããããã§ã¹ãã«ãšã³ããªãè¿œå ããApp.xamlã®ã¡ãœããããªãŒããŒã©ã€ãããŠãæ°ããããŒãžãè¿œå ããŸãã
ãã®ãã³ãã¬ãŒãã®äœ¿çšã¯èæ
®ããããæåã§ãå¿
èŠãªèŠçŽ ã段éçã«è¿œå ããŸãã
ãŸãããããã§ã¹ããã¡ã€ã«Package.appxmanifestã§ãã¢ããªã±ãŒã·ã§ã³ã«ããå
±æã³ã³ãã©ã¯ãã®ãµããŒããè¿œå ããã¢ããªã±ãŒã·ã§ã³ããµããŒãã§ããããŒã¿ã®ã¿ã€ãã瀺ãå¿
èŠããããŸãã

ããã§ã¯ãUriãBitmapãHTMLãStorageItemsãRTFã®ãµããŒããè¿œå ã§ããããšãããããŸãã
ãããã®ããŒã¿åãšã«ã¹ã¿ã 圢åŒã®ãµããŒãã«ã€ããŠã¯ãåŸã»ã©èª¬æããŸãã
次ã«ãApp.xamlã§OnShareTargetActivationãåå®çŸ©ããå¿
èŠããããŸãããã®ã¡ãœããã§ã¯ãããã¹ããæœåºã§ããå Žæãããªã³ã¯ã転éã§ããŸãã
protected override void OnShareTargetActivated(ShareTargetActivatedEventArgs args) { var frame = new Frame(); frame.Navigate(typeof(TargetPage), args.ShareOperation); Window.Current.Content = frame; Window.Current.Activate(); }
ããã§ãTargetPageããŒãžã§ã転éãããããã¹ããæœåºã§ããŸãã ç°¡åã«ããããã«ãããŒãžã«TextBlockãè¿œå ãããã®ããã¹ãããããã£ãèšå®ããŸãã
ãããè¡ãã«ã¯ãããŒãžã³ãŒãã§OnNavigateToã¡ãœãããåå®çŸ©ããããã¹ããæœåºããŸã
protected async override void OnNavigatedTo(NavigationEventArgs e) { if (e.Parameter != null) { var shareOperation = (ShareOperation)e.Parameter; txtBlock.Text=await shareOperation.Data.GetTextAsync(); } }
以äžã§ãã ã¬ã·ãŒããŒã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ãããã®åŸã»ã³ããŒã¢ããªã±ãŒã·ã§ã³ãèµ·åããå
±ææã«ã¬ã·ãŒããŒã¢ããªã±ãŒã·ã§ã³ãéžæãããšã次ã®ãŠã£ã³ããŠã衚瀺ãããŸãã

ç§ãã¡ã®ã¢ããªã±ãŒã·ã§ã³ã¯ãå¥ã®ã¢ããªã±ãŒã·ã§ã³ããæž¡ãããæååãåãåããŸããã
泚ç®ãã¹ãããšã ã¢ããªã±ãŒã·ã§ã³ã¯ãã¿ã€ãã«ãšãšãã«ãµã€ããããã¢ããã«è¡šç€ºãããŸãã ãªã³ã¯å
ããŒãžã®ãã¶ã€ã³ãèšç»ãããšãã¯ããã®ç¶æ³ãèæ
®ããå¿
èŠããããŸãã ïŒããããããªãªãŒã¹ã®å€ã¯ç°ãªããŸãããããã€ãã®ç°ãªãã¢ãã¿ãŒã§ã¯ãããã«å¹
ã¯åžžã«645ãã¯ã»ã«ã§ããïŒã
ãŸããã¿ã€ãã«ã«åœ±é¿ãäžããããšã¯ã§ããŸãããã¿ã€ãã«ïŒããã¯ç¢å°ãã¢ããªã±ãŒã·ã§ã³ã®ååãã¢ããªã±ãŒã·ã§ã³ã®ããŽïŒã§ã¬ã·ãŒããŒããŒãžãã¢ã¯ãã£ãã«ãªããŸãã ãã®ç¹ã§ããã®ããŒãžã®ããã²ãŒã·ã§ã³ãäœæããå¿
èŠã¯ãããŸããã çæ³çã«ã¯ãããã¯ããã²ãŒã·ã§ã³ã®ãªãåäžã®ããŒãžã§ããå¿
èŠããããŸãã
æšæºåœ¢åŒã®éåä¿¡ãããªãé »ç¹ã«ãæååãããããè€éãªããŒã¿åœ¢åŒãéåä¿¡ããå¿
èŠããããŸãã æãäžè¬çã«èŠæ±ããã圢åŒã«ã€ããŠã¯ã察å¿ããAPIãµããŒããè¿œå ãããŸããã TextãRtfãHtmlãUriãBitmapãStorageItemsïŒãã¡ã€ã«ïŒãæšæºåœ¢åŒãšããŠè»¢éã§ããŸãã ãããããåæã«éä¿¡ã§ããŸãã ã€ãŸã TextãHtmlãBitmapãªã©ãåæã«éä¿¡ããã³æœåºã§ããŸã
ããã¹ãããŒã¿åœ¢åŒã®éåä¿¡TextãRtfãHtmlã®æåã®3ã€ã®åœ¢åŒã¯ãåãæ¹æ³ã§éåä¿¡ãããŸãã
ãã©ã³ã¹ããã·ã§ã³ïŒ
args.Request.Data.SetText("..."); args.Request.Data.SetRtf("..."); args.Request.Data.SetHtmlFormat("...");
ã¬ã»ãã·ã§ã³ïŒ
ãŸããããã¹ããHTMLãUri圢åŒã®ãåä¿¡ãããµããŒãããããã«ã察å¿ãããšã³ããªããããã§ã¹ãã«è¿œå ããŸãã
察å¿ããããŒã¿ååŸã³ãŒãïŒ
shareOperation.Data.GetTextAsync(); shareOperation.Data.GetRtfAsync(); shareOperation.Data.GetHtmlFormatAsync();
äžåºŠã«è€æ°ã®åœ¢åŒããµããŒãããå Žåãç¹å®ã®ããŒã¿åã1ã€ã ãåãåãå¯èœæ§ãé«ããããã±ãŒãžå
ã®ããŒã¿ã®ãã³ã³ãã³ããã確èªããå¿
èŠããããŸãã
if(shareOperation.Data.Contains(StandardDataFormats.Text)) { var text = shareOperation.Data.GetTextAsync(); } if(shareOperation.Data.Contains(StandardDataFormats.Html)) { var html = shareOperation.Data.GetHtmlFormatAsync(); } if(shareOperation.Data.Contains(StandardDataFormats.Rtf)) { var rtf = shareOperation.Data.GetRtfAsync(); }
ãªã³ã¯ã®éåä¿¡Uriã®éä¿¡ãšåä¿¡ã¯ã»ãŒåãã§ãã
args.Request.Data.SetUri(new Uri("http://akhmed.ru/post/2012/07/19/share_contract_win8.aspx"));
ã¬ã»ãã·ã§ã³ïŒ
shareOperation.Data.GetUriAsync();
ã°ã©ãã£ãã¯ã®éåä¿¡ããå°ãé¢çœãã®ã¯ãç»åã®éåä¿¡ã§ãã
å¥ã®ãµãŒããŒããç»åãšããŠè»¢éã§ããŸã
args.Request.Data.SetBitmap(RandomAccessStreamReference.CreateFromUri(new Uri("http://freshyourmood.com/wp-content/uploads/2012/04/pure-water-aquatecuk.wordpress.com_.jpg")));
ãããžã§ã¯ããããšãŠãããŒã«ã«
args.Request.Data.SetBitmap(RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///apple.jpg")));
ç»åã®æœåºãéåžžã«ç°¡åãªæäœã§ãã æåã«ãå®å
ã¢ããªã±ãŒã·ã§ã³ã®ãããã§ã¹ãã«é©åãªãšã³ããªãè¿œå ããŸãïŒããããããã
次ã«ãããšãã°ãããŒãžäžã®ããã¹ããšç»åã察å¿ããxamlã³ãŒãã§è¡šç€ºããŸãã
<StackPanel Orientation="Horizontal" VerticalAlignment="Top"> <Image x:Name="img" Width="200" Height="200"></Image> <TextBlock x:Name="txtBlock" Margin="24" Text="start page text" Style="{StaticResource HeaderTextStyle}" /> </StackPanel>
ãæœåºãããŒã¿ã®ã³ãŒãïŒ
protected async override void OnNavigatedTo(NavigationEventArgs e) { if (e.Parameter != null) { var shareOperation = (ShareOperation) e.Parameter; if (shareOperation.Data.Contains(StandardDataFormats.Text)) { txtBlock.Text = await shareOperation.Data.GetTextAsync(); } if (shareOperation.Data.Contains(StandardDataFormats.Bitmap)) { var bitmapReference = await shareOperation.Data.GetBitmapAsync(); var bitmapImage = new BitmapImage(); bitmapImage.SetSource(await bitmapReference.OpenReadAsync()); img.Source = bitmapImage; } } }
ãããŠãçµæãè³è³ããããšãã§ããŸãã

åãåçã«ãããã¢ã€ã³ã³ç»åã転éã§ããŸãã æ§æã¯å°ãç°ãªããŸãã
ãã©ã³ã¹ããã·ã§ã³ïŒ
args.Request.Data.Properties.Thumbnail = RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///apple.jpg"));
ã¬ã»ãã·ã§ã³ïŒ
var bitmapReference = shareOperation.Data.Properties.Thumbnail;
ãããã£ãŠã2ã€ã®ç»åãäžåºŠã«è»¢éã§ããŸãããããã©ãŒãã³ã¹äžã®çç±ããã2çªç®ã®ã¢ãããŒãã䜿çšãã䟡å€ãããã®ã¯ãç»åãããŒã«ã«ã«ããããµã€ãºã倧ãããªãå Žåã®ã¿ã§ãã
ãã¡ã€ã«ã®éåä¿¡å¥çŽãéããŠãã·ã¹ãã ã§å©çšå¯èœãªãã¡ã€ã«ã転éã§ããŸãã WinRTã®ããã©ã«ãã§ã¯ããã¡ã€ã«ã·ã¹ãã ã«çŽæ¥ã¢ã¯ã»ã¹ã§ãããåä¿¡ãããã¡ã€ã«ããããšãã°FilePickerã³ã³ãã©ã¯ããä»ããŠè»¢éã§ããŸãã äžè¬ã«ããã¡ã€ã«ã®æäœã¯å¥ã®èšäºã«å€ããŸãããFilePickerã³ã³ãã©ã¯ãã®äœ¿çšã¯éåžžã«ç°¡åã§ãã
ããšãã°ãã¢ããªã±ãŒã·ã§ã³ã§ã®äœæ¥äžã«ãããã€ãã®ãã¡ã€ã«ãã¢ããªã±ãŒã·ã§ã³ã«ã¢ããããŒãã§ããŸãã
ç°¡åã«ããããã«ãã¯ãªãã¯ããŠãã¡ã€ã«ãéžæãããã¿ã³ãè¿œå ããŸãã
<Button Content="LoadFiles" Click="LoadFiles_Click" HorizontalAlignment="Left" Margin="268,82,0,0" VerticalAlignment="Top" Width="139"/>
ãããŠããŠãŒã¶ãŒãéžæãããã¡ã€ã«ãžã®ãªã³ã¯ãä¿åããŸãã
private IReadOnlyList<StorageFile> files; private async void LoadFiles_Click(object sender, RoutedEventArgs e) { var filePicker = new FileOpenPicker { FileTypeFilter = {"*"} }; files = await filePicker.PickMultipleFilesAsync(); }
次ã«ããããã®ãã¡ã€ã«ã転éããå
±æã€ãã³ãã瀺ããŸãã
void Share_DataRequested(DataTransferManager sender, DataRequestedEventArgs args) { args.Request.Data.Properties.Title = "file sharing"; if(files!=null) { args.Request.Data.SetStorageItems(files); } }
ãã¡ã€ã«ã®ãã¬ã·ãŒããŒãã®å®è£
ãéåžžã«ç°¡åã§ãã ãããã§ã¹ãã§ãStorageItemsãã¡ã€ã«ã®ãµããŒããè¿œå ãããã[ãã¡ã€ã«ã¿ã€ãããµããŒããã]ãã§ãã¯ããã¯ã¹ããªã³ã«ããå¿
èŠããããŸãã
次ã«ãäŸãšããŠããªã¹ãããã¯ã¹ã«ãã¡ã€ã«ããªã¹ãããŸãã
<ListBox x:Name="listBox"></ListBox>
ãããŠãåä¿¡ãããã¡ã€ã«ã®ååããã®ãªã¹ãã«ãã€ã³ãããŸã
protected async override void OnNavigatedTo(NavigationEventArgs e) { if (e.Parameter != null) { var shareOperation = (ShareOperation)e.Parameter; var files=await shareOperation.Data.GetStorageItemsAsync(); listBox.ItemsSource = files.Select(i=>i.Name); } }
ãã®çµæããããã次ã®çµæã衚瀺ãããŸãã
éæšæºããŒã¿åã®éåä¿¡ãæšæºåœ¢åŒã®ååšã«ãããã»ãšãã©ã®ã·ããªãªã§ã®äœæ¥ã倧å¹
ã«ç°¡çŽ åãããŸãã ããã§ããç§ãã¡ã«ãµãããã圢åŒããªãå Žåãã¹ã¯ãªãããå¿
èŠã«ãªãããšããããããŸãã 補åã®ãªã¹ããåŠçããã¢ããªã±ãŒã·ã§ã³ããããšããŸãã å€ãã®ãã£ãŒã«ããããããã®ãã¡ã®ããã€ãã¯ãªãã·ã§ã³ã§ãïŒååãäŸ¡æ Œãã«ããŽãªããã©ã³ãããŠããããªã©ïŒã ããã§ããã®åœ¢åŒã®è£œåã§ãæ©èœããå¥ã®ã¢ããªã±ãŒã·ã§ã³ããããå¥ã®ã¢ããªã±ãŒã·ã§ã³çšã®ãã©ãŒã ã«ããŒã¿ãé
眮ããæ©èœãè¿œå ãããå Žåã
æååã®ã·ãªã¢ã«åã§ãªããžã§ã¯ããéåä¿¡ããŸããããŒã¿ãäœããã®åœ¢åŒïŒCSVãXMLãJSONïŒã«ã·ãªã¢ã«åãã解æããŠååŸã§ããŸãã ãã ããæšæºåœ¢åŒã¯æ©èœããŸããã ãŸããããã«ããã¹ããŸãã¯å¥ã®åœ¢åŒã䜿çšãããšãæšæºåœ¢åŒããµããŒããããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ãéããã¡ãŒã«ã¢ããªã±ãŒã·ã§ã³ãéžæãããšããŠãŒã¶ãŒã«ã¯ç解ã§ããªãããã¹ãã§æºããããæåã衚瀺ãããŸãã ããã«ã詳现ã®ãªã補åã®ãªã¹ããæã€å¥ã®ãŠãŒã¶ãŒã«ããŒã¿ãéä¿¡ã§ããããã«ãããã¹ããŸãã¯HTML圢åŒãåŒãç¶ã䜿çšã§ããããã«ããããšèããŠããŸãã
ãã®å Žåãç¹å¥ãªããŒã¿åœ¢åŒã圹ç«ã¡ãŸãã
ãŸãã補åãªã©ã®åœ¢åŒã®ååãèãåºãå¿
èŠããããŸãã ïŒãããããç§ãã¡ã®åãåŸã«èª°ããåãååã®ãã©ãŒãããã䜿çšãããããã®ãã©ãŒããã補åã«ååãä»ãããšããçŽ æŽãããã¢ã€ãã¢ãæãã€ãã§ããããç°¡åã«ãããããProductã®ãŸãŸã«ããŸãïŒã
ã¬ã·ãŒããŒãšãµããŒã¿ãŒã®äž¡æ¹ã«æ¬¡ã®Productã¯ã©ã¹ããããšããŸãïŒ
public class Product { public string Name { get; set; } public int Count { get; set; } }
ã·ãªã¢ã©ã€ã¶ãŒïŒ
public class JsonSerializer { public static string Serialize<T>(T item) { var dataSerializer = new DataContractJsonSerializer(typeof(T)); var ms = new MemoryStream(); dataSerializer.WriteObject(ms,item); ms.Position = 0; return new StreamReader(ms).ReadToEnd(); } public static T Deserialize<T>(string value) { var dataSerializer = new DataContractJsonSerializer(typeof(T)); return (T)dataSerializer.ReadObject(new MemoryStream(Encoding.UTF8.GetBytes(value))); } }
ãµãã©ã€ã€ã¢ããªã±ãŒã·ã§ã³ã§ã¯ã補åãã·ãªã¢ã«åãã圢åŒèå¥åãæå®ããŠéä¿¡ã§ããŸãã
void Share_DataRequested(DataTransferManager sender, DataRequestedEventArgs args) { args.Request.Data.Properties.Title = "Product sharing"; var product = new Product() { Name = "Bread", Count = 2 }; var productJson = JsonSerializer.Serialize(product); args.Request.Data.SetData("product",productJson); }
ãåä¿¡è
ãã®å®è£
ïŒ
åä¿¡è
ã¢ããªã±ãŒã·ã§ã³ã§ã¯ããããã§ã¹ãã§è£œåãã©ãŒãããããµããŒãããããã«æå®ããå¿
èŠãããã次ã®ã³ãŒãã䜿çšããŠè£œåãååŸã§ããŸãã
protected async override void OnNavigatedTo(NavigationEventArgs e) { if (e.Parameter != null) { var shareOperation = (ShareOperation)e.Parameter; if(shareOperation.Data.Contains("product")) { var productJson = await shareOperation.Data.GetTextAsync("product"); var product = JsonSerializer.Deserialize<Product>(productJson); txtBlock.Text = product.Name + " " + product.Count; } } }
ã¢ããªã±ãŒã·ã§ã³ãèµ·åãããšãããŒã¿ãæ£åžžã«è»¢éãããããšã確èªã§ããŸãã

ãã®å Žåãéåžžã®æååãç¹å¥ãªåœ¢åŒã§åãæž¡ããŸããã GetTextAsyncïŒïŒã®åœ¢åŒãæå®ããã«æååãååŸã§ããŸãã
æšæºãéæšæºã¿ã€ããã Schema.orgããŒã¹ã®ã¹ããŒãããŒã¿ç¬èªã®ããŒã¿åœ¢åŒã§ã¯ãªããäžè¬çãªåœ¢åŒã䜿çšãããå ŽåããããŸãã
ããšãã°ã補åã§åäœããä»ã®ã¢ããªã±ãŒã·ã§ã³ãããå Žåããããã®ã¢ããªã±ãŒã·ã§ã³ã§ããŒã¿ã®åä¿¡ãšéä¿¡ãæŽçããããšã¯çã«ããªã£ãŠããŸãã
ãã®ãããªå Žåã
schema.orgãªãœãŒã¹ã§ã¹ããŒãã䜿çšããããšãå
¬åŒã«æšå¥šãããŠããŸãã
ãŸãããšã³ãã£ãã£ã®ã¿ã€ãïŒæžç±ãé³æ¥œãæ ç»ã補åïŒãå€å¥ããå¿
èŠããããŸã
é©åãªãšã³ãã£ãã£ãéžæãããšãã¹ããŒãããŒã¿ã«åŸã£ãŠJSONã®æååãéä¿¡ãŸãã¯åä¿¡ããå¿
èŠããããŸãã
ãšã³ãã£ãã£ã補åãïŒhttp://schema.org/ProductïŒãéžæãããšããŸãã
ãããã€ããŒã¢ããªã±ãŒã·ã§ã³ã®å®è£
ïŒããŒã¿è»¢éã¯ãäžèšã®ãã€ãã£ã圢åŒã®éä¿¡ã«å®å
šã«é¡äŒŒããŠããŸããéãã¯JSON圢åŒã®ã¿ã§ãã
async void Share_DataRequested(DataTransferManager sender, DataRequestedEventArgs args) { args.Request.Data.Properties.Title = "Product sharing"; var productFormat = @"{ ""type"" : ""http://schema.org/Product"", ""properties"" : { ""name"" : ""{0}"", ""description"" : ""{1}"", ""productID"" : ""{2}"" } }"; var productJson = String.Format(productFormat, "Olive oil", "description of product", "8410660101481"); args.Request.Data.SetData("http://schema.org/Product",productJson); }
åä¿¡æ©ã¢ããªã±ãŒã·ã§ã³ã®å®è£
ãã®ã¹ããŒãããµããŒãããã«ã¯ããããã§ã¹ãã§
schema.org/ProductããŒã¿åœ¢åŒãæå®ããå¿
èŠããããŸã

ããŒã¿ã®èªã¿åãã¯ãäžã§èª¿ã¹ãè¡ã®èªã¿åããšåæ§ã«å®è¡ãããŸãã
protected async override void OnNavigatedTo(NavigationEventArgs e) { if (e.Parameter != null) { shareOperation = (ShareOperation)e.Parameter; var productJson = await shareOperation.Data.GetTextAsync("http://schema.org/Product"); JsonObject productObject = JsonObject.Parse(productJson); JsonObject properties = productObject["properties"].GetObject(); var productId = properties["productID"]; var productName = properties["name"]; var productDescriptions = properties["description"]; } }
ãã€ããªããŒã¿ã®éåä¿¡å Žåã«ãã£ãŠã¯ãæååã§ã¯ãªããã€ããªããŒã¿ãæž¡ãæ¹ãç°¡åã§ãã ïŒããšãã°ãdjvuãšãã£ã¿ãŒããããçã®åœ¢åŒã§ããŒã¿ã転éãããå ŽåïŒã
ãã¡ã€ã«ãéããéããŠãããã¡ã€ã«ããã¹ããªãŒã ãžã®ãªã³ã¯ã転éããåä¿¡è
ã¢ããªã±ãŒã·ã§ã³ã§ãã®ã¹ããªãŒã ãèªã¿åãããšãã§ããŸãã
ã¡ã¢ãªå
ã®ã¹ããªãŒã ããããŒã¿ã転éããããèå³æ·±ãäŸãèããŠã¿ãŸãããã
async void Share_DataRequested(DataTransferManager sender, DataRequestedEventArgs args) { args.Request.Data.Properties.Title = "Product sharing"; var product = new Product() { Name = "Bread", Count = 2 }; var stream = new InMemoryRandomAccessStream(); using(var writer=new DataWriter(stream)) { writer.WriteInt32(product.Name.Length); writer.WriteString(product.Name); writer.WriteInt32(product.Count); await writer.StoreAsync(); await writer.FlushAsync(); writer.DetachStream(); } stream.Seek(0); args.Request.Data.SetData("product", stream); }
åä¿¡åŽã¢ããªã±ãŒã·ã§ã³ã§ã¯ããã®ã¹ããªãŒã ãèªã¿åã£ãŠè§£æã§ããŸãã
protected async override void OnNavigatedTo(NavigationEventArgs e) { if (e.Parameter != null) { var shareOperation = (ShareOperation)e.Parameter; if (shareOperation.Data.Contains("product")) { var stream = await shareOperation.Data.GetDataAsync("product") as IRandomAccessStream; var product = new Product(); using(var streamReader=new DataReader(stream)) { await streamReader.LoadAsync((uint) stream.Size); var len = streamReader.ReadInt32(); product.Name = streamReader.ReadString((uint) len); product.Count = streamReader.ReadInt32(); } txtBlock.Text = product.Name + " " + product.Count; } } }
é
延ããŒã¿éä¿¡ïŒããŒã¿ãããã€ããŒè»¢éïŒåã®äŸã«ã¯é倧ãªæ¬ ç¹ããããŸãã ãŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ã䜿çšããã«å
±ææäœããã£ã³ã»ã«ããå Žåã§ããåžžã«ããŒã¿ãåæåããã³æºåããŸãã å¥ã®æ¹æ³ãšããŠãããŒã¿ãå
±æããããšã¯ã§ããŸããããããŒã¿ãããã€ããŒãšåä¿¡åŽã¢ããªã±ãŒã·ã§ã³ã¯ããŠãŒã¶ãŒãã¢ã¯ãã£ãã«ããåŸã«ããŒã¿ãèªã¿åãããšãã§ããŸãã ããŒã¿ãããã€ããŒã䜿çšããŠãããŒã¿ãããã€ããŒã§æåŸã®äŸãäœãçŽããŸãããã
async void Share_DataRequested(DataTransferManager sender, DataRequestedEventArgs args) { args.Request.Data.Properties.Title = "Product sharing"; args.Request.Data.SetDataProvider("product",BinaryDataHandler); } private async void BinaryDataHandler(DataProviderRequest request) { try { var product = new Product() { Name = "Bread", Count = 2 }; var stream = new InMemoryRandomAccessStream(); using (var writer = new DataWriter(stream)) { writer.WriteInt32(product.Name.Length); writer.WriteString(product.Name); writer.WriteInt32(product.Count); await writer.StoreAsync(); await writer.FlushAsync(); writer.DetachStream(); } stream.Seek(0); request.SetData(stream); } finally { request.GetDeferral().Complete(); } }
ãã®ã¢ãããŒãã®äž»ãªå©ç¹ã¯ãå
±æãŠã£ã³ããŠã®è¡šç€ºãéããªããç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ãéžæãããåŸã«ã®ã¿BinaryDataHandlerã¡ãœãããåŒã³åºãããããšã§ãã ãŸãããŠãŒã¶ãŒãå
±ææäœããã£ã³ã»ã«ãããšãã¡ãœããã¯ãŸã£ããåŒã³åºãããŸããã
倧éã®ããŒã¿ïŒé³æ¥œããããªïŒã®è»¢éã®é©åãªç·šæã¢ããªã±ãŒã·ã§ã³ã倧éã®ããŒã¿ãé
ä¿¡ããå Žåããã¹ãŠã®ããŒã¿ã転éããããŸã§ãŠãŒã¶ãŒãåŸ
ãããªãã§ãã ããã
ããŒã¿ã®åä¿¡ãæ¢ã«å®äºããŠãããã€ã³ã¿ãŒãã§ãŒã¹ã§å¿
èŠãªã¢ã¯ã·ã§ã³ããã¹ãŠå®è¡ããå ŽåïŒããšãã°ãã¡ãŒã«ã€ã³ã¿ãŒãã§ãŒã¹ã®[éä¿¡]ãã¿ã³ãŸãã¯ãŠãŒã¶ãŒããã®ç¢ºèªãæããã«å¿
èŠãª[ä¿å]ãã¿ã³ãã¯ãªãã¯ããå ŽåïŒãã¡ãœãããåŒã³åºãããšãã§ããŸãïŒ
shareOperation.ReportCompleted();
ããã¯ããã¹ãŠã®ããŒã¿è»¢éæäœãå®äºããããšãã·ã¹ãã ã«éç¥ããåä¿¡åŽã¢ããªã±ãŒã·ã§ã³ã®å
±æã€ã³ã¿ãŒãã§ãŒã¹ãéããŸãã
転éãããããŒã¿ã®éãå€ãããå ŽåããŠãŒã¶ãŒã«åŒ·å¶çã«åŸ
æ©ãããã¹ãã§ã¯ãããŸããã
ã¡ãœãããåŒã³åºãããšãã§ããŸã
shareOperation.ReportStarted();
倧ããªããŒã¿ãã±ãããæœåºããåã«ã転éããã»ã¹ãéå§ããŸãããåæã«å
±æã€ã³ã¿ãŒãã§ã€ã¹ãé衚瀺ã«ãããŠãŒã¶ãŒã«äœæ¥ãç¶ç¶ããæ©äŒãæäŸããŸãã
次ã«ãã¡ãœãããåŒã³åºãå¿
èŠããããŸã
shareOperation.ReportDataRetreived();
ããã«ãããå¿
èŠãªãã¹ãŠã®ããŒã¿ãæ¢ã«æœåºãããå
ã®ã¢ããªã±ãŒã·ã§ã³ã解æŸã§ããããšãã·ã¹ãã ã«éç¥ããŸãïŒãŠãŒã¶ãŒã以åã«éããå ŽåïŒã
転éãå®äºãããšãã¡ãœãããåŒã³åºãããšãã§ããŸã
shareOperation.ReportCompleted();
ãŸãã¯æ¹æ³
shareOperation.ReportError("error description");
ããŒã¿è»¢éã®æåãŸãã¯ãšã©ãŒãã·ã¹ãã ã«éç¥ããŸãã
åŸè
ã®å ŽåããŠãŒã¶ãŒã¯ãšã©ãŒã«é¢ããéç¥ãåãåããå
±æãå床éãã以äžã®ãªã³ã¯ã«åŸã£ãŠè»¢éã¹ããŒã¿ã¹ã確èªãããšãšã©ãŒã確èªã§ããŸãã
ããŒã¿è»¢éã¢ããªã±ãŒã·ã§ã³ãBackgroundTransferTaskã䜿çšããå Žåãé©åãªã¡ãœãããåŒã³åºãããšã«ãããããŒã¿è»¢éã®ãã®ã¡ãœããã䜿çšããããšãã·ã¹ãã ã«éç¥ã§ããŸãã
shareOperation.ReportSubmittedBackgroundTask();
å
±æããã«ã«ãªã³ã¯ãè¿œå ããŸããããŒã¿è»¢éåŸã®åä¿¡åŽã¢ããªã±ãŒã·ã§ã³ã§ã¯ãè¿œå ã®æäœãè¡ãå¿
èŠããããšããŸãããã ããšãã°ãã¡ãŒã«ã¢ããªã±ãŒã·ã§ã³ã«ããã¹ããéä¿¡ããå ŽåããŠãŒã¶ãŒã¯ã¡ãã»ãŒãžã®éä¿¡å
ã®å®å
ãéžæããå¿
èŠããããŸãã ãã®å Žåãã¡ãŒã«ã¢ããªã±ãŒã·ã§ã³ã¯æåŸã®ã¢ã¯ã·ã§ã³ãžã®ã¯ã€ãã¯ãªã³ã¯ãäœæããŸãã 次åããtoããã£ãŒã«ãã§ãã®ã¯ã€ãã¯ãªã³ã¯ãéžæãããšã察å¿ãããšã³ããªãå
¥åãããŸãã
åä¿¡ã¢ããªã±ãŒã·ã§ã³ã«è£œåã®ãªã¹ãã1ã€ããªããšããŸãã 補åãªã¹ãã®ãªã¹ãããããŸãã ãŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ãéžæãã補åã転éãããªã¹ããéžæããå Žåããã®ãªã¹ããžã®ã¯ã€ãã¯ãªã³ã¯ãæäŸã§ããŸãã
ã¬ã·ãŒããŒã¢ããªã±ãŒã·ã§ã³ã«ã¯ã€ãã¯ãªã³ã¯ãè¿œå ããæ¹æ³ãèŠãŠã¿ãŸãããã
private async void ButtonSaveLink_Click(object sender, RoutedEventArgs e) { var quickLinkInfo = new QuickLink { Id = "homeListId", Title = "Add to Home list", SupportedFileTypes = { "*" }, SupportedDataFormats = {
XAMLã®å¯Ÿå¿ããã³ãŒã
<Button Content="Save" Click="ButtonSaveLink_Click" />
ããã§ãã¬ã·ãŒããŒã¢ããªã±ãŒã·ã§ã³ã§[ä¿å]ãã¿ã³ãæŒããšã次åå
±æãããšãã«ã¯ã€ãã¯ãªã³ã¯ã衚瀺ãããŸãã

次åã¯ããŠãŒã¶ãŒãã¯ãªãã¯ããã¯ã€ãã¯ãªã³ã¯ãç¹å®ããããšã§ãåãã¿ã€ãã®ã¢ã¯ã·ã§ã³ãç°¡çŽ åã§ããŸãã
shareOperation = (ShareOperation)e.Parameter; if(shareOperation.QuickLinkId=="homeListId") {
ãã®ãªã³ã¯ãèªåçã«è¿œå ããŠã¿ãŸãããïŒ ãŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ãã¢ã¯ãã£ãã«ããåŸãã¢ã¯ã·ã§ã³ãå®è¡ã§ããªãå Žåãããããã§ãã
å
±æAPIã¯ããªã³ã¯ãè¿œå ãããšå®å
ã¢ããªã±ãŒã·ã§ã³ãæå°éã«ãªãããã«ç¹å¥ã«èšèšãããŠããŸãã ãããã£ãŠããªã³ã¯ãè¿œå ããããšã¯ãå®è¡å¯èœãªæåŸã®æäœã§ãªããã°ãªããŸããã ã€ãŸã åä¿¡åŽã¢ããªã±ãŒã·ã§ã³ãéžæããŠãªã¹ããéžæãããšãããã«ä¿åããŠã¯ã€ãã¯ãªã³ã¯ãè¿œå ããŸãã ãŸãã¯ããªã¹ããéžæããããšã«ãããéžæãå€æŽãã[ä¿å]ãã¿ã³ãã¯ãªãã¯ããåŸã«ã®ã¿éžæãããªã¹ãã«ä¿åããæ©äŒãäžããŸãã
ãªã³ã¯ã®é¢é£æ§ããªããªã£ãå Žåãã¢ããªã±ãŒã·ã§ã³ããã¯ã€ãã¯ãªã³ã¯ãåé€ã§ããŸãã ïŒããšãã°ããã®èå¥åãæã€ãªã¹ãã¯ãããããŸããïŒã
shareOperation.RemoveThisQuickLink();
è«çãšã©ãŒãåŠçããŸãããœãŒã¹ã¢ããªã±ãŒã·ã§ã³ããŒãžãããŒã¿å
±æããµããŒãããŠããªãå Žåãå
±æããããšãããšããŠãŒã¶ãŒã«ã¯ããã®ã¢ããªã¯å
±æã§ããŸããããšããã¡ãã»ãŒãžã衚瀺ãããŸãã
ç¹å®ã®è£œåã®è©³çŽ°ã«ã¢ã¯ã»ã¹ããŠå
±æããå¿
èŠãããããšããŠãŒã¶ãŒã«äŒãããå ŽåããããŸãããŸãã¯ããã®ããŒãžã§ããã€ãã®è£œåãå
±æçšã«ããŒã¯ããå¿
èŠããããŸãïŒä»£æ¿æ段ãšããŠãããŸãå€ããªãå Žåã¯ãã¹ãŠã®ããŒã¿ãéä¿¡ã§ããŸãïŒããããã®å Žåã§ããå¿
èŠã«å¿ããŠãé
ä¿¡çšã®ããŒã¿ãæäŸã§ããªãçç±ãšãŠãŒã¶ãŒãè¡ãå¿
èŠãããããšããŠãŒã¶ãŒã«éç¥ã§ããŸããäŸïŒ
async void Share_DataRequested(DataTransferManager sender, DataRequestedEventArgs args) { args.Request.Data.Properties.Title = "Product sharing"; args.Request.FailWithDisplayText("please select products for sharing"); }
ããŒãžããå
±æãããããšãããšã次ã®çµæã衚瀺ãããŸãã
ããŒã¿å
±æã®æ¹åãçµ±èšã®åéããèªäœã§ããŒã¿ãå
±æããããšã¯ãã¢ããªã±ãŒã·ã§ã³éã®çžäºäœçšã®ããã®ã»ãŒæ®éçãªAPIã§ããéçºè
ãšããŠããŠãŒã¶ãŒãå¯èœãªéãå¿«é©ã«ãªãããã«ããããããšãè¡ãæ©äŒããããŸããã©ã®ã¢ããªã±ãŒã·ã§ã³ãæãé »ç¹ã«ããŒã¿ã転éããã©ã®ã¢ããªã±ãŒã·ã§ã³ããæãé »ç¹ã«ããŒã¿ãéä¿¡ãããããç¥ãããå ŽåããããŸããåè
ã®å Žåãåä¿¡åŽã¢ããªã±ãŒã·ã§ã³ã§ãµããŒãããã圢åŒã®æ°ãæ¹åã§ããŸãããŸãã¯ãåä¿¡åŽã¢ããªã±ãŒã·ã§ã³ã§ã¯ãæã人æ°ã®ãããããã€ããŒããã®ããŒã¿ã«å¯Ÿããããè¯ããµããŒããè¿œå ã§ããŸããããŒã¿ãæãé »ç¹ã«æäŸãããã¢ããªã±ãŒã·ã§ã³ãèŠã€ããããšã¯éåžžã«ç°¡åã§ããã¢ããªã±ãŒã·ã§ã³éžæã€ãã³ãã«ãµãã¹ã¯ã©ã€ãããŠãçµ±èšãåéã§ããŸã protected override void OnNavigatedTo(NavigationEventArgs e) { DataTransferManager.GetForCurrentView().DataRequested += Share_DataRequested; DataTransferManager.GetForCurrentView().TargetApplicationChosen += ShareText_TargetApplicationChosen; } protected override void OnNavigatingFrom(NavigatingCancelEventArgs e) { DataTransferManager.GetForCurrentView().DataRequested -= Share_DataRequested; DataTransferManager.GetForCurrentView().TargetApplicationChosen -= ShareText_TargetApplicationChosen; } void ShareText_TargetApplicationChosen(DataTransferManager sender, TargetApplicationChosenEventArgs args) { var targetAppName = args.ApplicationName;
åæ§ã«ãåä¿¡åŽã¢ããªã±ãŒã·ã§ã³ã§ã¯ãã©ã®ã¢ããªã±ãŒã·ã§ã³ããããŒã¿ãé
ä¿¡ããããã確èªã§ããŸãã protected async override void OnNavigatedTo(NavigationEventArgs e) { if (e.Parameter != null) { var shareOperation = (ShareOperation)e.Parameter;
å
±æã«é¢ããäžè¬çãªæšå¥šäºé
ãå®è£
ã®ãšã©ãŒãåé¿ããŸããããã«æ瀺ãããŠãããã¹ãŠã®æšå¥šäºé
ãå
¬åŒã§ããããã§ã¯ãªããç§ãèªåã§æžããæšå¥šäºé
ã®äžéšã¯æ¹å€çã«è§£éãããã¹ãã§ãããããã€ããŒã¢ããªã±ãŒã·ã§ã³ã®æšå¥šäºé
ãã³ã³ã¹ãã©ã¯ã¿ãŒã§å
±æèŠæ±ã€ãã³ãããµãã¹ã¯ã©ã€ãããå¿
èŠã¯ãããŸãããå¥ã®ããŒãžã«ç§»åãããšãããŒã¿å
±æã®ç»é²ãæ£ãã解é€ã§ããªããªããŸããããã«ããããŠãŒã¶ãŒããããã®ããŒãžã«ã¢ã¯ã»ã¹ããå Žåããã«ãããŒãžã¢ããªã±ãŒã·ã§ã³ã§ã¯ãå
±æã«ãµãã¹ã¯ã©ã€ãããŠãããã¹ãŠã®ããŒãžã§å
±æãæ©èœãããšããäºå®ã«ã€ãªãããŸããæãæ£ãã解決çã¯ãããŒãžã«ç§»åãããšãã«å
±æã§ãµã€ã³ãªã³ããããŒãžãé¢ãããšãã«å
±æãããµãã¹ã¯ã©ã€ã解é€ããããšã§ãïŒOnNavigateToãOnNavigateFromã¡ãœããïŒãç°¡åã«ããããã«ããããã®ã¢ã¯ã·ã§ã³ãèªååããããŒã¹ããŒãžãäœæã§ããŸãããŸãã¯ãã¢ããªã±ãŒã·ã§ã³ãã¢ã¯ãã£ãåããããšãã«å
±æããµãã¹ã¯ã©ã€ãããããšãã§ããŸãããã®å ŽåãçŸåšã¢ã¯ãã£ããªããŒãžãšãã®ç¶æ
ã«å¿ããŠãåäžã®å
±æãããŒãžã£ãŒããããŒã¿ãæäŸããŸãïŒããšãã°ãåããŒãžã®ãµãã¹ã¯ã©ã€ããšå
±æãåé¿ããããïŒãäžåºŠã«è€æ°ã®åœ¢åŒã§ããŒã¿ãæäŸããããšããå§ãããŸããå°çšã®To Doãªã¹ã圢åŒã䜿çšããŠããå Žåã§ãããŠãŒã¶ãŒãçŸåšã®To Doãªã¹ããå人ãªã©ã«ã¡ãŒã«ã§éä¿¡ã§ããããã«ãããã¹ããŸãã¯HTMLã§ããŒã¿ãé
ä¿¡ããæ©èœãæäŸããŸããã¢ããªã±ãŒã·ã§ã³ã倧éã®ããŒã¿ã転éããå Žåã¯ãã§ããã ãæ©ãå
±ææäœãéå§ããããã«ãããŒã¿ãããã€ããŒã®è»¢éã䜿çšããããšããå§ãããŸããå¿
èŠã«å¿ããŠãçŸåšã®ããŒãžã«é
ä¿¡çšã®æ
å ±ãããããšããŠãŒã¶ãŒã«äŒããããšãã§ããŸãïŒããšãã°ãã²ãŒã ãããããã¢ããªã±ãŒã·ã§ã³ã«ã²ãŒã èŠçŽ ãšå®çžŸãããå ŽåãããŒã¿å
±æãä»ããŠå人ãšå
±æã§ãããã®ããŠãŒã¶ãŒã«äŒããããšãã§ããŸãïŒãå
±æããã«ãéããã³ããã¿ã³ãè¿œå ã§ããŸãã次ã®ã³ãŒãã¯å
±æããã«ãéããŸãããŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ã®ãã¿ã³ãã¯ãªãã¯ããå Žåã«ã®ã¿äœ¿çšããããšããå§ãããŸãã DataTransferManager.ShowShareUI();
åä¿¡åŽã¢ããªã±ãŒã·ã§ã³ã®æšå¥šäºé
ãããŒã¿ã¯äžåºŠã«è€æ°ã®åœ¢åŒã§ã¢ããªã±ãŒã·ã§ã³ã«éãããããšã«æ³šæããŠãã ããã䜿çšå¯èœãªåœ¢åŒã®ãªã¹ãå
šäœã¯ããã©ã¡ãŒã¿ãŒããååŸã§ããŸãïŒshareOperation.Data.AvailableFormatsãŸããshareOpertaion.Data.ContainsïŒïŒã¡ãœããã䜿çšããŠãç¹å®ã®åœ¢åŒã®å¯çšæ§ã確èªããããšãã§ããŸããé³æ¥œããããªãªã©ã®å€§éã®ããŒã¿ã転éããå ŽåããŒã¿ãããã€ããŒãšshareOperation.Reportã®å¯èœæ§ã䜿çšããŸã...ïŒïŒ;転éãéåæçã«å®è¡ãããŠãŒã¶ãŒãæäœã®å®äºãåŸ
ã€ããšã匷å¶ããªããããå¿
èŠã«å¿ããŠãå
±æããã«ã«ãªã³ã¯ãè¿œå ããŠãåãã¿ã€ãã®ã¢ã¯ã·ã§ã³ãç°¡çŽ åããŠãã ããã scheme.orgã®æšæºã䜿çšããŠããå Žå ããŒã¿ã®åœ¢åŒãééã£ãŠãããšåžžã«æ³å®ããé©åãªãã§ãã¯ãšãšã©ãŒåŠçãå®è¡ããŸãã