快速构建Windows 8风格应用15-ShareContract构建

简介:

本篇博文主要介绍共享数据包、如何构建共享源、如何构建共享目标、DataTransferManager类。

共享数据包
DataPackage(数据包)是共享数据标准。
共享数据格式可以是多种的,包括文本、URI、HTML、图像等,以及更多可扩展的格式。
我们可以通过以下方法设置需要的分享数据类型:
1) SetText():设置共享文本,例如:
可以实现效果:
2) SetUri():设置共享Uri;
3) SetHtmlFormat():设置共享Html;
4) SetBitmap():设置共享位图,例如:
可以实现效果:
5) SetRtf():设置共享富文本;
6) SetData():设置共享数据;
7) SetStorageItems():设置共享文件或文件夹;
具体使用这些方法的示例代码如下:
 
如何构建共享源
首先作为共享源应用需要考虑的事情有哪些呢?
1) 侦听和处理要参与的共享事件;
2) 内容可以由两种方式共享:隐式[用户没有选择内容就选择“共享”]和显示[用户在应用中选择内容后选择“共享”];
3) 构建Data Package(数据包)以获得最佳结果;
那么如何在自己应用程序中构建共享源呢?
第一步:
需要在应用想要共享数据的页面代码中注册DataTransferManager类的 DataRequested事件,该事件当用户划出Charms(超级按钮),并选择共享(Share Contract)时触发。
第二步:
在OnDataRequested函数中,编写应用程序要共享的数据包。
代码中首先需要通过args.Request获取到当前窗体请求共享对象,然后设置request对象的Data类的相关属性,就可以进行共享文本、图片等信息了。其中Data.Properties.Thumbnail可以设置数据包的缩略图。
通过以上步骤,我们就可以实现数据的共享了,可以在共享面板中看到要共享的数据包信息了。效果如图:
第三步:
共享完成之后,我们需要在当前操作页面中将DataRequested事件注销掉,以免耗费系统更多资源。
 
如何构建共享目标
通常情况下社交类、及时通讯类、云端存储类、打印设备类等应用适用成为共享目标应用。若我们应用程序接受来自其他应用提供的共享数据,那么我们的应用程序就成为了共享目标程序。
应用程序成为共享目标,可以增加应用或服务的使用率,并使服务拥有与用户相关的最新内容。
作为共享目标应用需要考虑哪些事情呢?
1) 注册为共享目标,指定接受的格式;
2) 构建共享用户界面,使其成为共享体验的一部分,包括:[在应用中共享的人员或位置选择]和[快速的轻量级体验];
3) 使用DataPackage,提取最适合共享的数据;
4) 共享完成后,最好提示用户共享成功,并且用户最好能够实现在共享的过程中看到共享进度或者取消共享的操作;
5) 返回一个Quicklink(快速链接),例如分享到的地方;
那么我们如何构建共享目标呢?
第一步:
打开我们应用程序的应用清单文件,将应用程序声明为Share Target,并设置能够接受数据包中数据格式。
第二步:
App.xaml.cs文件中重写OnShareTargetActivated方法,这样就能接收到系统调用的请求。
OnShareTargetActivated方法中当应用作为共享目标激活时,导航到应用程序共享目标页面(示例中导航到了MainPage页面)。
第三步:
共享目标页面中解析共享的数据包信息。
代码中首先将e.Parameter强制转换为ShareOperation类,然后通过shareOperation对象可以获取到数据包的属性,包含的文本、Uri、图片等其他格式的信息。
返回QuickLink
刚才我们提到了在获取打包数据并处理之后,可以返回系统一个 QuickLink,代码可如下:
成功返回QuickLink之后,我们的应用就会作为常用目标出现在共享面板中了。
我们的目标应用也可以在获取数据包数据的方法中通过shareOperation.QuickLinkId来判断是否从QuickLink进入目标应用程序,从而根据不同的QuickLinkId做特别的处理。
 
DataTransferManager
DataTransferManager类在实现Share Contract时扮演了非常重要的角色,那么它包含哪些重要方法和事件呢?
1) DataRequested事件:共享操作开始时触发;
2) TargetApplicationChosen事件:目标应用被选择时触发;
3) GetForCurrentView方法:获取与当前窗体相关的DataTransferManager;
4) ShowShareUI方法:显示共享面板;






 本文转自 王祖康 51CTO博客,原文链接:http://blog.51cto.com/wzk89/1017700 ,如需转载请自行联系原作者
相关文章
|
9月前
|
Ubuntu API C++
C++标准库、Windows API及Ubuntu API的综合应用
总之,C++标准库、Windows API和Ubuntu API的综合应用是一项挑战性较大的任务,需要开发者具备跨平台编程的深入知识和丰富经验。通过合理的架构设计和有效的工具选择,可以在不同的操作系统平台上高效地开发和部署应用程序。
334 11
|
安全 前端开发 Windows
Windows Electron 应用更新的原理是什么?揭秘 NsisUpdater
本文介绍了 Electron 应用在 Windows 中的更新原理,重点分析了 `NsisUpdater` 类的实现。该类利用 NSIS 脚本,通过初始化、检查更新、下载更新、验证签名和安装更新等步骤,确保应用的更新过程安全可靠。核心功能包括差异下载、签名验证和管理员权限处理,确保更新高效且安全。
690 4
Windows Electron 应用更新的原理是什么?揭秘 NsisUpdater
|
弹性计算 开发框架 安全
基于云效 Windows 构建环境和 Nuget 制品仓库进行 .Net 应用开发
本文将基于云效 Flow 流水线 Windows 构建环境和云效 Packages Nuget 制品仓库手把手教你如何开发并部署一个 .NET 应用,从环境搭建到实战应用发布的详细教程,帮助你掌握 .NET 开发的核心技能。
|
vr&ar C# 图形学
WPF与AR/VR的激情碰撞:解锁Windows Presentation Foundation应用新维度,探索增强现实与虚拟现实技术在现代UI设计中的无限可能与实战应用详解
【8月更文挑战第31天】增强现实(AR)与虚拟现实(VR)技术正迅速改变生活和工作方式,在游戏、教育及工业等领域展现出广泛应用前景。本文探讨如何在Windows Presentation Foundation(WPF)环境中实现AR/VR功能,通过具体示例代码展示整合过程。尽管WPF本身不直接支持AR/VR,但借助第三方库如Unity、Vuforia或OpenVR,可实现沉浸式体验。例如,通过Unity和Vuforia在WPF中创建AR应用,或利用OpenVR在WPF中集成VR功能,从而提升用户体验并拓展应用功能边界。
563 1
|
XML 缓存 前端开发
Electron-builder 是如何打包 Windows 应用的?
本文首发于微信公众号“前端徐徐”,作者徐徐深入解析了 electron-builder 在 Windows 平台上的打包流程。文章详细介绍了 `winPackager.ts`、`AppxTarget.ts`、`MsiTarget.ts` 和 `NsisTarget.ts` 等核心文件,涵盖了目标创建、图标处理、代码签名、资源编辑、应用签名、性能优化等内容,并分别讲解了 AppX/MSIX、MSI 和 NSIS 安装程序的生成过程。通过这些内容,读者可以更好地理解和使用 electron-builder 进行 Windows 应用的打包和发布。
1421 0
|
数据可视化 程序员 C#
C#中windows应用窗体程序的输入输出方法实例
C#中windows应用窗体程序的输入输出方法实例
433 0
|
9月前
|
安全 数据安全/隐私保护 虚拟化
Windows Server 2022 中文版、英文版下载 (2025 年 10 月更新)
Windows Server 2022 中文版、英文版下载 (2025 年 10 月更新)
2287 2
Windows Server 2022 中文版、英文版下载 (2025 年 10 月更新)
|
9月前
|
安全 Unix 物联网
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 10 月更新)
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 10 月更新)
1006 0
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 10 月更新)
|
10月前
|
运维 安全 网络安全
Windows Server 2019拨号“找不到设备”?Error 1058解决指南
Windows Server 2019拨号报错1058?别急!这不是硬件故障,而是关键服务被禁用。通过“服务依存关系”排查,依次启动“安全套接字隧道协议”“远程接入连接管理”和“路由与远程访问”服务,仅需4步即可恢复PPPoE或VPN拨号功能,轻松解决网络中断问题。
715 1
|
9月前
|
存储 SQL 人工智能
Windows Server 2025 中文版、英文版下载 (2025 年 10 月更新)
Windows Server 2025 中文版、英文版下载 (2025 年 10 月更新)
1220 0