App to App communication 要求
- 在MenuFlyoutItem中增加share选项,点击后相应条目能进行共享;
- 实现文字共享功能,能显示共享UI,在邮件应用中显示共享内容正确;
- 实现图片共享功能
实验过程
- 在MenuFlyoutItem中增加Share选项;
- 定义share的事件处理函数:调用DataTransferManager.ShowShareUI();
- 分享页面事件的注册、注销;
代码
(1)分享按钮事件处理器
private void MenuFlyoutItem_Click(object sender, RoutedEventArgs e)
{
var s = sender as FrameworkElement;
var item = (Models.TodoItem)s.DataContext;
App.title = item.title;
App.details = item.description;
DataTransferManager.ShowShareUI();
}
(2)事件(数据包)的注册与注销
DataTransferManager.GetForCurrentView().DataRequested += OnShareDataRequested;
DataTransferManager.GetForCurrentView().DataRequested -= OnShareDataRequested;
(3)数据包的定义
void OnShareDataRequested(DataTransferManager sender, DataRequestedEventArgs args) {
DataRequest request = args.Request;
request.Data.Properties.Title = App.title;
request.Data.Properties.Description = App.details;
DataRequestDeferral deferal = request.GetDeferral();
request.Data.SetText(App.details);
request.Data.SetBitmap(RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/background1.jpg")));
deferal.Complete();
}
- 实验截图
分享按钮
分享界面
分享结果
以上内容皆为本人观点,欢迎大家提出批评和指导,我们一起探讨!