Windows runtime 页面上的Winrt Phone 8.1应用程序共享任务功能只能工作一次
我的应用程序中有一个共享简单文本的页面,无法正常工作 生成此功能的步骤Windows runtime 页面上的Winrt Phone 8.1应用程序共享任务功能只能工作一次,windows-runtime,windows-phone-8.1,Windows Runtime,Windows Phone 8.1,我的应用程序中有一个共享简单文本的页面,无法正常工作 生成此功能的步骤 转到页面,单击“共享”,显示可以共享的应用程序 点击后退按钮=>再次点击共享按钮 这一次将不会打开共享屏幕 将我的代码粘贴到下面: protected override void OnNavigatedFrom(NavigationEventArgs e) { _dataTransferManager.DataRequested -= OnDataRequested; this
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();
}
}
当调试share一直工作时。我怀疑问题是因为您取消订阅了
\u dataTransferManager.DataRequested-=OnDataRequested。在调试PLM时,这将正常工作,因此不会引发此事件-而调试PLM处于禁用和禁用状态
运行应用程序正常时,暂停将调用OnNavigatedFrom,但是,因此不会订阅到\u dataTransferManager.DataRequested+=OnDataRequested代码>
在这种情况下,您可能可以使用挂起/恢复(或其他)事件来处理DataTransferManager。我不知道如何在单个页面上注册挂起/恢复事件您是对的,现在也发生了完全相同的事情。问题是,在恢复应用程序时没有触发事件。如果您告诉我任何在恢复时触发的事件,这将非常有用,或者我只能在导航时注销此datarequest事件back@Yawar一切都取决于你需要实现什么。你的应用程序也应该正确处理悬挂。