我有一个托管 wp8 应用程序和一个本机应用程序,我希望我可以从托管应用程序启动本机应用程序并向其发送一些参数。
我尝试了 LaunchUriAsync 和 Package.Launch,然后从 OnActivated 函数接收。但参数始终为空。
我的代码在这里:
托管应用程序:
Windows.System.Launcher.LaunchUriAsync(new System.Uri("vistagame1:123"));
//IEnumerable<Package> apps = Windows.Phone.Management.Deployment.InstallationManager.FindPackagesForCurrentPublisher();
//Package p = apps.FirstOrDefault((a) => a.Id.Name == "SsAtack");
//p.Launch("?content=1234¶m2=test");
本机应用程序:
void SsAtack::OnActivated(CoreApplicationView^ applicationView,IActivatedEventArgs^args)
{
switch (args->Kind)
{
case ActivationKind::Launch:
{
LaunchActivatedEventArgs^ args2 = (LaunchActivatedEventArgs^)(args);
Platform::String^ s = args2->Arguments->ToString();
if(s == "1")
{
//always empty here.
}
}
break;
case ActivationKind::Search:
{
char a[] = "123";
}
break;
case ActivationKind::ShareTarget:
{
char a[] = "123";
}
break;
case ActivationKind::Protocol:
{
char a[] = "123";
}
break;
default:
break;
}
HardwareButtons::BackPressed += ref new EventHandler<BackPressedEventArgs^>(this, &SsAtack::OnBackButtonPressed);
CoreWindow::GetForCurrentThread()->Activate();
}