说我是否要在顶部窗口中打开翻译器。传递一些字符串供它翻译。
这甚至可能吗?
答案 0 :(得分:2)
您可以launch the default app for a given URI只使用Launcher
类,例如:
// The URI to launch
var uri = new Uri(@"http://stackoverflow.com/q/34740877/50447");
// Launch the URI
var success = await Windows.System.Launcher.LaunchUriAsync(uri);
if (success)
{
// URI launched
}
else
{
// URI launch failed
}
这也支持自定义URI方案,因此您可以使用ms-drive-to:?cp=40.726966~-74.006076
之类的URI来启动驾驶应用,并获取前往纽约那一点的路线。
同样,您can register your own URI scheme以便您可以启动。因此,如果您找不到通过URI激活来处理翻译的应用程序,那么可以编写自己的可以获取translate:{string}&from=en&to=es
形式的URI然后拥有可以从其他应用程序启动
答案 1 :(得分:1)
我认为此示例对您有所帮助 点击此处:How to launch an UWP app from another app
以下代码是核心:
在你的启动器应用程序中。
Uri uri = new Uri("test-launchpage1://somepath");
//if you don't use this option, the system will show a confim box when you open new app
var promptOptions = new Windows.System.LauncherOptions();
promptOptions.TreatAsUntrusted = false;
bool isSuccess = await Windows.System.Launcher.LaunchUriAsync(uri, promptOptions);
在你推出的app中:
在package.appxmainfest中,您需要config launch sechme,如下所示:
<Package>
<Applications>
<Application>
<Extensions>
<uap:Extension Category="windows.protocol">
<uap:Protocol Name="test-launchpage1">
<uap:DisplayName>LaunchPage1</uap:DisplayName>
</uap:Protocol>
</uap:Extension>
</Extensions>
</Application>
</Applications>
</Package>
在启动应用的app.cs中,您需要覆盖事件处理程序OnActivated
,如下所示:
protected override void OnActivated(IActivatedEventArgs args)
{
if (args.Kind == ActivationKind.Protocol)
{
Frame rootFrame = Window.Current.Content as Frame;
if (rootFrame == null)
{
rootFrame = new Frame();
Window.Current.Content = rootFrame;
rootFrame.NavigationFailed += OnNavigationFailed;
}
var protocolEventArgs = args as ProtocolActivatedEventArgs;
rootFrame.Navigate(typeof(MainPage), protocolEventArgs.Uri);
Window.Current.Activate();
}
}