【问题标题】:UWP Share Target open main viewUWP Share Target 打开主视图
【发布时间】:2016-09-26 09:56:48
【问题描述】:

我的应用中的共享目标实现存在问题。这让我快疯了。

我的 App.xaml.cs 中有:

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

工作正常! --> 下一个:
在我的 ShareTarget.cs 中,如果打开或未打开,我会“简单地”打开应用程序主窗口。

目前我有:

        await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => Frame.Navigate(typeof(MainPage), this));

仅在“共享”框架内打开右侧的主页。我想打开主框架。

在 MainPage 的 OnNavigatedTo 方法中

在这里我尝试打开一个新视图并关闭共享框架:

var newView = CoreApplication.CreateNewView();
                await newView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                {
                    var frame = new Frame();
                    frame.Navigate(typeof(MainPage), null);
                    Window.Current.Content = frame;
                });

如果应用程序已关闭,我会收到此错误:

WinRT 信息:无法创建新视图,因为主窗口 尚未创建

如果应用打开,右侧的共享框架会导航到 MainPage 并在几秒钟后关闭。

不敢相信微软让形成正确的实施变得如此困难。

【问题讨论】:

  • 共享目标是托管视图。这意味着它在共享窗格内运行。不建议应用尝试跳出共享窗格。如果您真的想跳出窗格,您可以自己启动协议。
  • 谢谢。我读到了。这是唯一的可能吗?我怎样才能让它开得更久?无论如何,当导航到“MainPage”时,它似乎也会在大约 10 秒后关闭。
  • 您不应在共享窗格中导航。预期的 UI 是直接在共享窗格内向用户显示共享页面作为单个页面,在此处执行共享操作,然后关闭窗格。
  • 一旦我想要完成共享,我至少可以以某种方式激活主窗口吗?问题是我需要在主页上完成分享。
  • 查看我的第一条评论。您可以启动协议。

标签: uwp sharing uwp-xaml data-sharing


【解决方案1】:

似乎唯一可行的方法是像@Raymon Chen 建议的那样,通过创建协议启动。

我用这个页面解释得很好:

http://www.c-sharpcorner.com/UploadFile/6f0898/inter-app-communications-in-windows-10-uwp535/

它包含一些错别字。请小心。

【讨论】:

    猜你喜欢
    • 2016-05-14
    • 2016-01-13
    • 2016-12-25
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    相关资源
    最近更新 更多