2017-02-03 157 views
2

讓我們從背景開始。我們正在iOS/Android/Windows上構建應用程序,我們將使用Firebase動態鏈接在用戶之間共享內容(鏈接如下所示:https://xya.app.goo.gl?link=..。)。在iOS & Android上,如果安裝了該應用程序,則可以啓動該應用程序;如果尚未安裝,則可以打開Play/Store。這也有優雅的回落到我們的網絡應用程序的優勢。從網站打開UWP應用程序

現在這不是本機支持的Windows。只有以下選項:

  • 自定義URI方案(例如app:// some-link)。不可用,因爲沒有優雅的回退到我們的網絡
  • URI處理程序 - 因爲週年更新應用程序可以註冊常規http URI的處理程序。同樣無法使用,因爲我們並不擁有其用於鏈接

這使我只剩下一個可行的選擇域http://goo.gl - 我們的Web應用程序,檢測用戶是否是在Windows上。如果他是,檢查應用程序是否已安裝並啓動它或Windows應用商店讓用戶下載它。

我的想法是否正確?如果是這樣,我該如何從網絡應用程序啓動我的應用程序/商店?這應該是可能的,它適用於商店(當你導航到Windows商店 - 例如https://www.microsoft.com/en-gb/store/p/ ... - 它打開商店應用程序)

任何想法?我需要兩個想法 - 檢測應用程序是否已安裝&啓動它

回答

1

如果您單擊具有自定義URI方案的URI,但該URI方案中沒有在Windows中註冊的應用程序,它會要求下載受支持的應用程序從商店。您可以通過指向例如app:// test(鏈接到非http網站在StackOverflow中似乎不起作用,但您可以爲此創建一個簡單的演示HTML)。

<html> 
<body> 
    <a href="app://test">Test link</a> 
    <a href="twitter://">Open twitter</a> 
</body> 
</html> 

如果一個應用程序來處理URI方案是安裝它會打開它,所以你需要,如果你使用的是Windows 10基本上(這是一個HTML/JS的問題,我認爲)來檢測。而且我認爲這也是Windows Store基本上的功能。因爲它沒有爲每個應用程序打開Store應用程序(例如,如果您在W10桌面上不適用於WP8.1應用程序),這就是爲什麼我會猜測在網站上有一個檢查。

+1

這不適用於所有瀏覽器,例如在Firefox上它會顯示一個頁面「Protocol not understand」,在Chrome上它什麼都不做(afaik)。 –

+0

但我發現這個lib可以用來檢測自定義URI方案是否與任何應用程序相關聯,跨瀏覽器:https://github.com/ismailhabib/custom-protocol-detection –

+0

關於Firefox的真實點,還沒有經測試的Chrome原因未安裝。但瀏覽器開發人員認爲這很糟糕,所以應該委託給系統。 – schumi1331