我有一个托管的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();
}