You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将我的UWP应用添加到其他应用的DataTransferManager.ShowShareUI()分享界面中

UWP应用添加到系统分享列表实现方案

你需要完成应用清单配置和分享激活逻辑处理两部分操作:

1. 配置应用清单声明共享目标

打开项目中的Package.appxmanifest文件,在<Applications>下对应应用的<Application>节点内添加共享目标扩展声明,示例配置如下:

<Extensions>
  <uap:Extension Category="windows.shareTarget">
    <uap:ShareTarget>
      <uap:SupportedFileTypes>
        <!-- 支持所有文件类型可以写<uap:SupportsAnyFileType />,也可指定特定后缀 -->
        <uap:FileType>.txt</uap:FileType>
        <uap:FileType>.png</uap:FileType>
        <uap:FileType>.jpg</uap:FileType>
      </uap:SupportedFileTypes>
      <uap:DataFormat>Text</uap:DataFormat>
      <uap:DataFormat>Bitmap</uap:DataFormat>
      <uap:DataFormat>StorageItems</uap:DataFormat>
      <!-- 可根据需求添加自定义数据格式 -->
    </uap:ShareTarget>
  </uap:Extension>
</Extensions>

你可以根据自身应用的功能,选择支持的分享数据类型,只有其他应用分享的内容匹配你声明的类型时,你的应用才会出现在分享列表中,示例分享界面如下:
分享界面示例

2. 处理分享激活逻辑

重写App.xaml.cs中的OnShareTargetActivated方法,接收其他应用分享过来的内容并处理,示例代码如下:

protected override async void OnShareTargetActivated(ShareTargetActivatedEventArgs args)
{
    var shareOperation = args.ShareOperation;
    if (shareOperation.Data.Contains(StandardDataFormats.Text))
    {
        string sharedText = await shareOperation.Data.GetTextAsync();
        // 处理分享的文本逻辑
    }
    else if (shareOperation.Data.Contains(StandardDataFormats.Bitmap))
    {
        var bitmapStream = await shareOperation.Data.GetBitmapAsync();
        // 处理分享的图片逻辑
    }
    else if (shareOperation.Data.Contains(StandardDataFormats.StorageItems))
    {
        var storageItems = await shareOperation.Data.GetStorageItemsAsync();
        // 处理分享的文件逻辑
    }
    // 处理完成后告知系统操作结束
    shareOperation.ReportCompleted();
    // 如需跳转到指定页面处理,可在此处添加页面导航逻辑
    Frame rootFrame = Window.Current.Content as Frame;
    if (rootFrame == null)
    {
        rootFrame = new Frame();
        Window.Current.Content = rootFrame;
    }
    rootFrame.Navigate(typeof(YourShareHandlePage), shareOperation);
    Window.Current.Activate();
}

注意事项

  • 如果你需要支持分享任意类型的文件,可把<uap:SupportedFileTypes>下的指定文件类型替换为<uap:SupportsAnyFileType />
  • 调试时可直接使用系统自带的文件资源管理器、照片应用、记事本等发起分享,验证你的应用是否出现在分享列表
  • 应用必须正确安装到系统后,才会被系统识别为合法的分享目标,调试时直接从Visual Studio部署即可生效

内容的提问来源于stack exchange,提问作者And. R.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 16:54:02