Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Launch UWP app from command line #24534

Merged
merged 3 commits into from Oct 25, 2019
Merged
Changes from 1 commit
Commits
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

Next

Allow launching UWP app from command line

  • Loading branch information
ferjm committed Oct 24, 2019
commit 0feb16fe8d7d8ff8e3cc7e642ae2b7b7b84411b9
@@ -31,7 +31,9 @@ App::App() {
#endif
}

void App::OnLaunched(LaunchActivatedEventArgs const &e) {
void App::createRootFrame(
bool prelaunchActivated,
winrt::Windows::Foundation::IInspectable const &args) {
Frame rootFrame{nullptr};
auto content = Window::Current().Content();
if (content) {
@@ -43,26 +45,33 @@ void App::OnLaunched(LaunchActivatedEventArgs const &e) {

rootFrame.NavigationFailed({this, &App::OnNavigationFailed});

if (e.PrelaunchActivated() == false) {
if (prelaunchActivated == false) {
if (rootFrame.Content() == nullptr) {
rootFrame.Navigate(xaml_typename<ServoApp::BrowserPage>(),
box_value(e.Arguments()));
rootFrame.Navigate(xaml_typename<ServoApp::BrowserPage>(), args);
}
Window::Current().Content(rootFrame);
Window::Current().Activate();
}
} else {
if (e.PrelaunchActivated() == false) {
if (prelaunchActivated == false) {
if (rootFrame.Content() == nullptr) {
rootFrame.Navigate(xaml_typename<ServoApp::BrowserPage>(),
box_value(e.Arguments()));
rootFrame.Navigate(xaml_typename<ServoApp::BrowserPage>(), args);
}
Window::Current().Activate();
}
}
}

void App::OnLaunched(LaunchActivatedEventArgs const &e) {
this->createRootFrame(e.PrelaunchActivated(), box_value(e.Arguments()));
}

void App::OnActivated(IActivatedEventArgs const &args) {
if (args.Kind() == Windows::ApplicationModel::Activation::ActivationKind::
CommandLineLaunch) {
return this->createRootFrame(false, nullptr);
}

if (args.Kind() ==
Windows::ApplicationModel::Activation::ActivationKind::Protocol) {
auto protocolActivatedEventArgs{args.as<
@@ -9,6 +9,8 @@ namespace winrt::ServoApp::implementation {
struct App : AppT<App> {
App();

void createRootFrame(bool prelaunchActivated,
winrt::Windows::Foundation::IInspectable const &args);
void OnLaunched(
Windows::ApplicationModel::Activation::LaunchActivatedEventArgs const &);
void App::OnActivated(
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" IgnorableNamespaces="uap mp">
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5" IgnorableNamespaces="uap mp uap5">
<Identity Name="1d265729-8836-4bd3-9992-4cb111d1068b" Publisher="CN=Allizom" Version="1.0.0.0" />
<mp:PhoneIdentity PhoneProductId="1d265729-8836-4bd3-9992-4cb111d1068b" PhonePublisherId="00000000-0000-0000-0000-000000000000" />
<Properties>
@@ -32,6 +32,14 @@
<uap:DisplayName>Firefox Reality URL</uap:DisplayName>
</uap:Protocol>
</uap:Extension>
<uap5:Extension
Category="windows.appExecutionAlias"
Executable="ServoApp.exe"
EntryPoint="ServoApp.App">
<uap5:AppExecutionAlias>
<uap5:ExecutionAlias Alias="Servo.exe" />
</uap5:AppExecutionAlias>
</uap5:Extension>
</Extensions>
</Application>
</Applications>
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.