2015-09-01 208 views
8

當用戶在我的應用程序中選擇「視頻通話」選項時,我需要打開外部應用程序(Cisco Jabber Video for Telepresence)。從通用Windows應用程序打開外部應用程序

我發現,這是不可能在一個通用的應用程序,打開可執行文件的位置...

我還發現,當它不與任何URI方案相關的我無法打開的應用程序。 ..

有什麼辦法可以做到這一點?

回答

8

由於微軟MVA,有些選項被提交給我們(你只需要撥弄出來):

方案1(this Microsoft MVA tutorial推薦):
如果要啓動特定應用程序,您必須創建一個URI方案註冊,只有您想要啓動的特定應用程序才能處理。 使用Launcher,您可以調用只能由一個應用程序處理的指定URI(例如my-cool-uri-scheme://start?param1=123&param2=ABC)。

注意:用戶將始終有最終選擇哪個應用程序以指定的URI開始(這就是爲什麼該解決方案是由Microsoft推薦的原因)。

以下解決方案很可能只適用於企業環境!

解決方案2(乾淨解決方法):
你必須寫一個代理的Windows應用程序。
這個代理應用程序(幾乎和解決方案#1一樣)向自己註冊一個特定的文件擴展名。
從您的UWP應用程序中,然後調用一個包含參數的假想文件路徑(例如C:/Users/CURRENTUSER/AppData/Roaming/YOURAPP/PARAM1/PARAM2/PARAM3/open.my-cool-extension) - 或者文件本身包含參數(例如XML或RESTful)。
處理應用程序將使用這些信息來啓動特定的應用程序(使用Process.Start)和給定的參數。

解決方案3(解決方法):
你必須寫一個觀察的Windows應用程序。 此應用程序創建一個FileSystemWatcher收聽特定的文件夾。那麼爲什麼這個骯髒的變通辦法?因爲你...

  1. 必須創建一個FileSystemWatcher永久觀看一個特定的drop目錄爲你的UWP應用程序。
  2. 用戶無法控制將發生什麼(不可能覆蓋應用程序啓動)
+0

解決方案1將執行。我想到了解決方案2,但我認爲它是骯髒的。你指的是什麼教程? – vrwim

+0

@vrwim在這個[MVA課程](https://www.microsoftvirtualacademy.com/en-us/training-courses/a-developers-guide-to-windows-10-12618)中,它的主題**#15 * *。 – Herdo

+0

不幸的是,我必須去選擇#2,因爲非商店應用似乎沒有包名...... – vrwim

相關問題