我在JavaScript / Cordova中编写了一个应用程序,并将其编译为Windows UWP应用程序。我还有一个第三方Windows桌面应用程序。我想从我的Cordova应用程序打开桌面应用程序,传递一个参数并在某些事件(例如桌面应用程序关闭时)从桌面应用程序将值传回我的Cordova应用程序。桌面应用程序有一个API - 所以如果我的应用程序是用.NET编写的,这不会是一个问题。有没有办法实现我想要的?我假设一个应用程序是桌面版,一个是UWP,这两个应用程序无法直接交互?如果第三方生成他们的应用程序的UWP版本怎么办?
马丁
答案 0 :(得分:0)
我想从我的Cordova应用程序打开桌面应用程序,传递一个参数并在某些事件(例如桌面应用程序关闭时)从桌面应用程序将值传回我的Cordova应用程序。桌面应用程序有一个API - 所以如果我的应用程序是用.NET编写的,这不会是一个问题。有没有办法实现我想要的?
为windows平台构建cordova应用程序时。它将内置于100%UWP(JS)应用程序中。因此,您可以在Windows平台上考虑Cordova应用程序是一个UWP应用程序。因此,无法打开桌面应用程序。
UWP应用与桌面应用之间的通信方式是App Service。但是,它无法打开您的桌面应用程序。
更新
在Cordova UWP应用程序中,您可以直接调用WinRT,如下所示:
var AppServices = Windows.ApplicationModel.AppService;
var conn = new AppServices.AppServiceConnection();
但是在cordova app中,没有intellisense支持,这使得编码很困难,你可以创建一个测试UWP(JS)应用程序,编写代码并将过去的代码复制到你的cordova应用程序。
答案 1 :(得分:0)
您的Cordova / UWP应用可以通过协议启动启动您的桌面应用程序: https://docs.microsoft.com/en-us/uwp/api/windows.system.launcher#Windows_System_Launcher_LaunchUriAsync_Windows_Foundation_Uri_
为此,桌面应用程序需要为自己注册协议。例如:MS WORD注册" ms-word:"协议,所以你可以通过LaunchUriAsync从你的UWP启动MS WORD(新的Uri(" ms-word:")。