为什么不';我的Windows应用商店(Metro)应用程序不会显示在共享窗格中

本文关键字:显示 应用程序 共享 Metro 我的 Windows 应用 为什么不 | 更新日期: 2023-09-27 18:26:00

我已将我的应用程序设置为共享目标(和源),我可以成功地与其他应用程序共享应用程序的内容,但当我在另一个应用程序(例如邮件或IE)中时,我无法与我的应用程序共享它们的内容,因为它没有作为可用的共享目标应用程序显示在共享窗格中。

我阅读并遵循了MSDN文档,查看了示例,还在Package.AppXManifest文件中设置了共享目标声明。

为什么,我该如何解决?


C#代码背后:

    ShareOperation shareOperation;
    private string sharedDataTitle;
    private string sharedDataDescription;
    private string shareQuickLinkId;
    private string sharedText;
    private Uri sharedUri;
    private IReadOnlyList<IStorageItem> sharedStorageItems;
    private string sharedCustomData;
    private string sharedHtmlFormat;
    private IReadOnlyDictionary<string, RandomAccessStreamReference> sharedResourceMap;
    private IRandomAccessStreamReference sharedBitmapStreamRef;
    private IRandomAccessStreamReference sharedThumbnailStreamRef;
    private void ReportStarted()
    {
        this.shareOperation.ReportStarted();
    }
    private void ReportCompleted()
    {
        this.shareOperation.ReportCompleted();
    }
    protected override async void OnNavigatedTo(NavigationEventArgs e)
    {
        RegisterForShare();
        try
        {
            this.shareOperation = (ShareOperation)e.Parameter;
            await Task.Factory.StartNew(async () =>
                {
                    ReportStarted();
                    // Retrieve data package properties.
                    this.sharedDataTitle = this.shareOperation.Data.Properties.Title;
                    this.sharedDataDescription = this.shareOperation.Data.Properties.Description;
                    this.shareQuickLinkId = this.shareOperation.QuickLinkId;
                    // Retrieve data package content.
                    if (this.shareOperation.Data.Contains(StandardDataFormats.Text))
                    {
                        try
                        {
                            this.sharedText = await this.shareOperation.Data.GetTextAsync();
                        }
                        catch (Exception exception)
                        {
                            // NotifyUser of error.
                        }
                    }
                    else if(this.shareOperation.Data.Contains(StandardDataFormats.Html))
                    {
                        try
                        {
                            this.sharedHtmlFormat = await this.shareOperation.Data.GetHtmlFormatAsync();
                        }
                        catch (Exception exception)
                        {
                        }
                    }
                    else if (this.shareOperation.Data.Contains(StandardDataFormats.Uri))
                    {
                        try
                        {
                            this.sharedUri = await this.shareOperation.Data.GetUriAsync();
                        }
                        catch (Exception exception)
                        {
                        }
                    }
                    // Get back to the UI thread.
                    await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async () =>
                        {
                            if (this.sharedText != null)
                            {
                                // Create a Note out of shared data.
                                CreateNote(this.sharedDataTitle, this.sharedText, null);
                                this.shareOperation.ReportDataRetrieved();
                            }
                            if (this.sharedUri != null)
                            {
                                CreateNote(this.sharedDataTitle, this.sharedUri.OriginalString, null);
                                this.shareOperation.ReportDataRetrieved();
                            }
                            if (this.sharedHtmlFormat != null)
                            {
                                CreateNote(this.sharedDataTitle, this.sharedHtmlFormat.ToString(), null);
                                this.shareOperation.ReportDataRetrieved();
                            }
                        });
                });
        }
        catch (Exception exception)
        {
            Debug.WriteLine(exception.Message);
        }
        if (e.NavigationMode == NavigationMode.Back)
        {
            navigatedBack = true;

        }
        base.OnNavigatedTo(e);
    }

App.xaml.cs:

    protected override void OnShareTargetActivated(ShareTargetActivatedEventArgs args)
    {
        var rootFrame = new Frame();
        rootFrame.Navigate(typeof(MainPage), args.ShareOperation);
        Window.Current.Content = rootFrame;
        Window.Current.Activate();
    }

任何帮助都将不胜感激。

为什么不';我的Windows应用商店(Metro)应用程序不会显示在共享窗格中

在包清单中,确保添加"共享目标"的声明