Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ShareTargetActivated事件完成后如何返回应用程序?_C#_Win Universal App_Windows 10_Uwp_Windows 10 Mobile - Fatal编程技术网

C# ShareTargetActivated事件完成后如何返回应用程序?

C# ShareTargetActivated事件完成后如何返回应用程序?,c#,win-universal-app,windows-10,uwp,windows-10-mobile,C#,Win Universal App,Windows 10,Uwp,Windows 10 Mobile,如果应用程序已处于后台/挂起状态,并且调用了OnShareTargetActivated事件,则它将在具有新窗口的新ApplicationView中运行。它工作得很好,但当共享完成后,我想返回到我的应用程序主视图(上一个),它位于后台/挂起状态。可能吗 在UWP的早期版本(10586)中,有一种方法完成了这项工作,但从10493开始,这种方法被弃用,并且不能在所有设备上工作。正如我所尝试的那样,关闭共享窗口,然后返回到作为共享数据源的应用程序,而不是我的应用程序的后台/挂起视图 示例场景:用户单

如果应用程序已处于后台/挂起状态,并且调用了OnShareTargetActivated事件,则它将在具有新窗口的新ApplicationView中运行。它工作得很好,但当共享完成后,我想返回到我的应用程序主视图(上一个),它位于后台/挂起状态。可能吗

在UWP的早期版本(10586)中,有一种方法完成了这项工作,但从10493开始,这种方法被弃用,并且不能在所有设备上工作。正如我所尝试的那样,关闭共享窗口,然后返回到作为共享数据源的应用程序,而不是我的应用程序的后台/挂起视图


示例场景:用户单击我的应用程序按钮“在internet中查找翻译”,这将打开带有bing/google translator的Edge,我的应用程序将暂停。在Edge中,用户标记一些文本,单击共享并选择应用程序。一旦共享完成(ReportCompleted),用户被重定向到Edge,就会触发OnShareTargetActivated,启动应用程序的新视图。我想以某种方式切换到我的主(以前挂起的)视图-我可以在移动设备上使用ApplicationViewSwitcher来实现这一点,但是,在桌面上,这是不可能的,因为在尝试访问以前视图的CoreWindow时出现异常。

用户应该返回到共享数据源的应用程序,而不是您的应用程序。您可以在新创建的共享窗口中创建应用程序UI的副本。主视图在一个单独的UI线程/窗口上运行,我认为您不能在共享窗口中显示它。@MehrzadChehraz通常我会错过这个旧的DismissUI方法。如果我从我的应用程序(例如edge)调用share source,然后共享一些信息,那么所需的行为就是返回到主应用程序。我希望避免创建主视图的副本。有一种类似ApplicationViewSwitcher的东西-我想知道是否有人有一个很好的解决方案。@MehrzadChehraz有了ApplicationViewSwitcher,我可以在手机上返回到主视图,但在桌面上是不可能的。我想知道是否有一种方法可以在任何设备上实现这一点。看起来你在这方面的信息比我多,但我仍然不了解情况:是你的应用程序在共享某些内容,还是另一个应用程序在你的应用程序中共享某些内容。我知道。问题是,由于您正常启动Edge,返回应用程序取决于用户(除非您可以使用“结果启动”机制)。在Edge中使用共享合同作为返回应用程序的方式似乎有点奇怪。在我看来,预期的设计是:用户共享数据,您在共享合同中调用ReportCompleted,然后用户手动关闭edge并打开您的应用程序。不过我建议你也在问题中加入这个场景,也许专家知道答案。用户应该返回到共享数据源的应用程序,而不是你的应用程序。您可以在新创建的共享窗口中创建应用程序UI的副本。主视图在一个单独的UI线程/窗口上运行,我认为您不能在共享窗口中显示它。@MehrzadChehraz通常我会错过这个旧的DismissUI方法。如果我从我的应用程序(例如edge)调用share source,然后共享一些信息,那么所需的行为就是返回到主应用程序。我希望避免创建主视图的副本。有一种类似ApplicationViewSwitcher的东西-我想知道是否有人有一个很好的解决方案。@MehrzadChehraz有了ApplicationViewSwitcher,我可以在手机上返回到主视图,但在桌面上是不可能的。我想知道是否有一种方法可以在任何设备上实现这一点。看起来你在这方面的信息比我多,但我仍然不了解情况:是你的应用程序在共享某些内容,还是另一个应用程序在你的应用程序中共享某些内容。我知道。问题是,由于您正常启动Edge,返回应用程序取决于用户(除非您可以使用“结果启动”机制)。在Edge中使用共享合同作为返回应用程序的方式似乎有点奇怪。在我看来,预期的设计是:用户共享数据,您在共享合同中调用ReportCompleted,然后用户手动关闭edge并打开您的应用程序。然而,我建议你也在问题中加入场景,也许专家知道答案。