zoukankan      html  css  js  c++  java
  • UWP数据分享

    前言

    本文介绍如何在通用Windows平台(UWP)应用程序中支持共享合同。共享合同是一种在应用程序之间快速共享数据(如文本,链接,照片和视频)的简便方法。例如,用户可能想要使用社交网络应用与他们的朋友共享网页,或者在笔记应用中保存链接以便稍后参考。

    设置事件处理程序:

    (1)添加DataRequested事件处理程序,以便在用户调用共享时调用。当用户点击您的应用中的控件(例如按钮或应用栏命令)或在特定场景中自动(例如,如果用户完成关卡并获得高分)时,就会发生这种情况。

    DataTransferManager dataTransferManager = DataTransferManager.GetForCurrentView();
    dataTransferManager.DataRequested += DataTransferManager_DataRequested;
    

    (2)当DataRequested事件发生时,您的应用程序收到DataRequest对象。它包含一个DataPackage,您可以使用它来提供用户想要共享的内容。您必须提供要分享的标题和数据。描述是可选的,但建议使用。

    DataRequest request = args.Request;
    

    选择数据:

    DataPackage对象可以包含这些格式的一个或多个,以任何组合。

    1. Plain text 纯文本
    2. Uniform Resource Identifiers (URIs) 统一资源标识符(URI)
    3. HTML
    4. Formatted text 格式化文本
    5. Bitmaps 位图
    6. Files 文件
    7. Custom developer-defined data 自定义开发人员定义的数据

    设置属性:

    打包数据以进行共享时,您可以提供各种属性,以提供有关正在共享的内容的其他信息。这些属性可帮助目标应用改善用户体验。例如,当用户与多个应用程序共享内容时,描述会有所帮助。在共享图像或指向网页的链接时添加缩略图可为用户提供可视参考。有关更多信息,请参阅DataPackagePropertySet。
    除标题外的所有属性都是可选的。title属性是必需的,必须设置。

    request.Data.Properties.Title = "Share Example";
    request.Data.Properties.Description = "A demonstration on how to share";
    

    启动共享UI

    系统提供用于共享的UI。要启动它,请调用ShowShareUI方法。

    DataTransferManager.ShowShareUI();
    

    示例代码

    在MainPage.xaml中添加一个按钮并设置相应事件

     <Button Name="Mybutton"
            Content="share"
            FontSize="64"
            Click="Mybutton_OnClick"></Button>
    

    在MainPage.xaml.cs文件中添加代码

     public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
            //使ShareRequested函数在共享操作时发生
            DataTransferManager.GetForCurrentView().DataRequested += ShareRequested;
        }
    
        private void Mybutton_OnClick(object sender, RoutedEventArgs e)
        {
            DataTransferManager.ShowShareUI();
        }
        private void ShareRequested(DataTransferManager sender, DataRequestedEventArgs args)
        {
            var deferral = args.Request.GetDeferral();
            DataRequest request = args.Request;
            request.Data.Properties.Title = "ShareUISample";
            request.Data.SetText("Description:" + "This is a line from ShareUISample. Welcome to learn UWP.");
            //flash.jpg是示例代码中Asssets文件夹中的图片,可以将其改为你自己的图片
            request.Data.SetBitmap(RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/flash.jpg")));
            deferral.Complete();
        }
    

    点击share


    >共享图片成功 ![](https://img2018.cnblogs.com/blog/1525608/201903/1525608-20190323135712836-682939010.png)
  • 相关阅读:
    WPF之感触
    C# WinForm 给DataTable中指定位置添加列
    MyEclipse 8.6 download 官方下载地址
    将博客搬至CSDN
    Building Microservices with Spring Cloud
    Building Microservices with Spring Cloud
    Building Microservices with Spring Cloud
    Building Microservices with Spring Cloud
    Building Microservices with Spring Cloud
    Building Microservices with Spring Cloud
  • 原文地址:https://www.cnblogs.com/gzyc/p/10583714.html
Copyright © 2011-2022 走看看