快速构建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 ,如需转载请自行联系原作者
目录
打赏
0
0
0
0
347
分享
相关文章
基于云效 Windows 构建环境和 Nuget 制品仓库进行 .Net 应用开发
本文将基于云效 Flow 流水线 Windows 构建环境和云效 Packages Nuget 制品仓库手把手教你如何开发并部署一个 .NET 应用,从环境搭建到实战应用发布的详细教程,帮助你掌握 .NET 开发的核心技能。
Windows Electron 应用更新的原理是什么?揭秘 NsisUpdater
本文介绍了 Electron 应用在 Windows 中的更新原理,重点分析了 `NsisUpdater` 类的实现。该类利用 NSIS 脚本,通过初始化、检查更新、下载更新、验证签名和安装更新等步骤,确保应用的更新过程安全可靠。核心功能包括差异下载、签名验证和管理员权限处理,确保更新高效且安全。
62 4
Windows Electron 应用更新的原理是什么?揭秘 NsisUpdater
Electron-builder 是如何打包 Windows 应用的?
本文首发于微信公众号“前端徐徐”,作者徐徐深入解析了 electron-builder 在 Windows 平台上的打包流程。文章详细介绍了 `winPackager.ts`、`AppxTarget.ts`、`MsiTarget.ts` 和 `NsisTarget.ts` 等核心文件,涵盖了目标创建、图标处理、代码签名、资源编辑、应用签名、性能优化等内容,并分别讲解了 AppX/MSIX、MSI 和 NSIS 安装程序的生成过程。通过这些内容,读者可以更好地理解和使用 electron-builder 进行 Windows 应用的打包和发布。
240 0
C#中windows应用窗体程序的输入输出方法实例
C#中windows应用窗体程序的输入输出方法实例
69 0
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功能,从而提升用户体验并拓展应用功能边界。
114 0
WPF与邮件发送:教你如何在Windows Presentation Foundation应用中无缝集成电子邮件功能——从界面设计到代码实现,全面解析邮件发送的每一个细节密武器!
【8月更文挑战第31天】本文探讨了如何在Windows Presentation Foundation(WPF)应用中集成电子邮件发送功能,详细介绍了从创建WPF项目到设计用户界面的全过程,并通过具体示例代码展示了如何使用`System.Net.Mail`命名空间中的`SmtpClient`和`MailMessage`类来实现邮件发送逻辑。文章还强调了安全性和错误处理的重要性,提供了实用的异常捕获代码片段,旨在帮助WPF开发者更好地掌握邮件发送技术,提升应用程序的功能性与用户体验。
91 0
快速构建Windows 8风格应用12-SearchContract概述及原理
原文:快速构建Windows 8风格应用12-SearchContract概述及原理 本篇博文主要介绍Search Contract概述、Search Contract面板结构剖析、Search Contract实现原理、Search Contract最佳实践。
908 0
快速构建Windows 8风格应用13-SearchContract构建
原文:快速构建Windows 8风格应用13-SearchContract构建 本篇博文主要介绍如何在应用中构建SearchContract,相应的原理已经在博文《快速构建Windows 8风格应用12-SearchContract概述及原理》中阐述清楚。
959 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等