web-dev-qa-db-ja.com

カスタムプロトコルハンドラーを受け入れるためにChromeを取得する方法

WebアプリにChromeカスタム "web +"プロトコルハンドラーを登録して、[設定]->(詳細)-> [プライバシー]-> [コンテンツ設定]-> [ハンドラー]->に表示されるようにすることができます。ハンドラーを管理します。

ただし、サイトは「なし」と表示され、私のサイトはプルダウンに表示されますが、そのプルダウンで自分のサイトを選択すると、Windowsから「このタイプのアプリを開くためのアプリがインストールされていません」というメッセージが表示されます。 link(web + mycustomscheme)... [ストアでアプリを探してください]をクリックすると、Windowsメッセージをクリックすると、プルダウンに「なし」と表示されます(カスタムスキームのリンクをクリックしても機能しません)。

自分のサイトをハンドラーとして受け入れるにはどうすればよいですか?

ところで、これはFirefoxで正常に機能します。

3
Brett Zamir

最初の問題(カスタムプロトコルにアプリを登録するためにChromeを取得))では、カスタムプロトコルの外部URLをアクティブにしようとした最近の作業に基づいて、これはChromeはまだうまく処理できません。

ここでのバグ( https://bugs.chromium.org/p/chromium/issues/detail?id=560809 )は、オムニボックスまたはコマンドラインからこれらのプロトコルを開始することに関連していますが、私もリンクがjavascript(window.locationまたはそのsrcでiframeを作成する)を介してアクティブ化されたときに適用されると思います。

私が言えることから、これはまだ未解決の問題です。

今-第2部(Windowsがプロトコルの処理方法がわからないと言ってApp Storeを提供しているところ)。レジストリを介してプロトコルをWindowsに登録する必要があります。これは、ここで説明するように、HKEY_CURRENT_USER\Software\Classesに特別にフォーマットされたキーを追加するのと同じくらい簡単です: https://msdn.Microsoft.com/en-us/library/aa767914(v = vs.85)。 aspx

注-そのページの指示に従うと、そのマシンのすべてのユーザーのプロトコルハンドラーが登録され、登録を行うアプリには昇格(管理者)が必要になります。 HKEY_CLASSES_ROOTの代わりにHKEY_CURRENT_USER\Software\Classesを使用する場合、登録はHKEY_CLASSES_ROOTの下に表示されますが、管理者が作成する必要はありませんが、現在のユーザーに対してのみ機能します。だから-その上であなたの毒を選んでください。

HKEY_CLASSES_ROOTは、HLEY_CURRENT_USERのすべての\ Software\ClassesとHKEY_LOCAL_MACHINEを組み合わせたビューの一種です。 HKCUがHKLMをオーバーライドすることは信じていますが、確認していませんが、HKEY_CLASSES_ROOTで直接キーを作成しようとすると、HKLMに書き込もうとし、昇格がない限りアクセスが拒否されます。

これがお役に立てば幸いです。幸運を。

4
J. Brad Harris