2017-02-03 6 views
2

背景から始めましょう。 iOS/Android/Windows上にFirebaseのダイナミックリンクを使用してユーザー間でコンテンツを共有するアプリケーションを作成しています(リンクはhttps://xya.app.goo.gl?link=..のようになります)。 iOSの場合& Androidの場合、インストールされている場合はアプリを起動し、まだインストールされていない場合はPlay/Storeを開きます。これには、私たちのWebアプリケーションに優雅なフォールバックの利点もあります。ウェブサイトからOpen UWPアプリ

これはWindowsでネイティブにサポートされていません。次のオプションのみがあります。

  • カスタムURIスキーム(app:// some-linkなど)。 Anniversary Updateアプリは、通常のhttp URIのハンドラを登録できるので、私たちのウェブには優雅なフォールバックがないので使用できません。
  • URIハンドラ。私たちはドメインを所有していないため、使用できません。

これは私たちのWebアプリケーション上に残っている唯一の実行可能なオプションです。ユーザがWindows上にいるかどうかを検出します。もしそうなら、アプリがインストールされているかどうかを確認して起動するか、Windowsストアをダウンロードしてユーザーにダウンロードさせてください。

私の考えは正しいですか?もしそうなら、私はどのように私のapp/StoreをWebアプリケーションから起動するのですか?可能であれば、Storeで動作します(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スキームは、あなたが(私が思うHTML/JSの質問です)基本的にはWindowsの10にしているかどうかを検出する必要があるので、それは、それを開きますインストールされていることを処理する場合

。そして、これはWindowsストアが基本的にやっていることだと思います。 W10デスクトップの場合はWP8.1アプリではなく、すべてのアプリのストアアプリを開くわけではないため、ウェブサイトのチェックがあると思います。

+1

これは、すべてのブラウザで当てはまるわけではありません。 Firefoxでは「プロトコルが理解できない」ページが表示され、Chromeでは何もしません(afaik)。 –

+0

しかし、カスタムURIスキームが任意のアプリ、クロスブラウザに関連付けられているかどうかを検出するために使用できるこのlibが見つかりました:https://github.com/ismailhabib/custom-protocol-detection –

+0

Firefoxについての真実、そうではありませんテストされたChromeの原因がインストールされていないしかし、それはブラウザの開発者によって悪いです、それはとにかくシステムに委任すべきです... – schumi1331

関連する問題