我的应用程序中有一个页面,它共享简单的文本,但工作不正常。
制作此功能的步骤。
转到页面点击共享它显示可以共享的应用程序。
点击后退按钮=>再次点击分享按钮。
这次不会打开共享屏幕。
将代码粘贴在下面:
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
_dataTransferManager.DataRequested -= OnDataRequested;
this.navigationHelper.OnNavigatedFrom(e);
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
_dataTransferManager = DataTransferManager.GetForCurrentView();
_dataTransferManager.DataRequested += OnDataRequested;
this.navigationHelper.OnNavigatedTo(e);
}
private void OnDataRequested(DataTransferManager sender, DataRequestedEventArgs e)
{
e.Request.Data.Properties.Title = obj.Title;
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(obj.Description);
string html = "";
foreach (HtmlNode item in doc.DocumentNode.Descendants())
{
if (item.Name == "body")
{
html = item.InnerHtml;
}
}
e.Request.Data.Properties.Description = html;
e.Request.Data.SetText(html);
}
private void AppBarButton_Click_1(object sender, RoutedEventArgs e)
{
//DataTransferManager.ShowShareUI();
if (CMSService.IsConnectedToInternet())
{
DataTransferManager.ShowShareUI();
}
else
{
ContentText.Text = App.GetResource("NoInternetAlert");
AlertMessage.ShowAsync();
}
}
虽然调试共享一直有效。
答案 0 :(得分:1)
我怀疑问题是因为您在 OnNavigatedFrom 事件中取消订阅了_dataTransferManager.DataRequested -= OnDataRequested;
。这在调试时可以正常工作,因此不会引发此事件 - 虽然禁用了调试PLM并且Suspending/Resuming events won't be raised。
当运行app normal时,暂停将调用 OnNavigatedFrom ,但OnNavigatedTo won't be raised upon resuming,因此_dataTransferManager.DataRequested += OnDataRequested;
不会有吊文。
在这种情况下,您可以使用暂停/恢复(或其他)事件来处理 DataTransferManager 。