29

Firefox は、クリックされたリンクのインテントを本来の方法で起動しません。そのため、Firefox でリンクをクリックしてアプリを起動することはできません (これは Chrome や他のブラウザーで可能です)。

編集:これは2013年の投稿であることを覚えておいてください.

望ましい動作は次のとおりです。私の Web サイトにはリンクがあり、クリックすると Android アプリが起動します。アプリがインストールされていない場合は、できれば Google Play のそのページを開いてダウンロードする必要があります。

方法

私がそれを実装する方法は、次の形式の「インテント URI」を使用することです。 intent://myhost.com/#Intent;scheme=myscheme;package=com.myapp;end

アプリでは、インテント フィルターをマニフェストに登録し、一致するインテントをリッスンします。ただし、リンクがクリックされたときにそのようなインテントを起動して、アプリを起動できるようにするのはブラウザー次第です。

この方法をさまざまなブラウザーでテストしましたが、ほとんどのブラウザーで機能します。ただし、Firefox は例外です。他のブラウザーでは、アプリが起動するか、Google Play のページが読み込まれます (デバイスにインストールされていない場合)。

「インテント URI」を使用する方法は、Google が推奨する方法です。Chrome やその他のブラウザーで完全に動作します。他の方法もあります。可能性に関する多くのスレッドや記事を読みました。主な代替手段は次のとおりです。

代替方法

  1. のようなカスタムスキームを使用するmyscheme://mywebsite.com
  2. のような通常の http リンクを使用するhttp://mywebsite.com

代替案 1 は、次の 2 つの理由からお勧めしません。Google もmarket://...Google Play アプリの起動に使用していましたが、これは誤りであり、変更する必要があることを認めています。- アプリが現在インストールされていない場合、アプリは起動されず、ほとんどのブラウザーでエラー ページが表示されますが、これは明らかに望ましくありません。

代替案 2 は、ほとんどのブラウザーでは機能せず、「インテント URI」メソッドを支持して廃止されたようです。

特に Firefox

カスタム スキーム (代替 1) でのみ機能します。通常の http リンク (代替 2) の場合、リンクをロードして Web サイトを表示するだけです。推奨される「インテントURI」方式の場合は何もしません。実際には、アプリを起動するかどうかを尋ねるダイアログが表示されますが、[はい] をクリックしても何も起こりません。そのため、Firefox は「 」のようなリンクを認識しているようですintent://...が、適切に処理していません。

Q: Firefox でリンクからアプリを起動するための推奨される方法は何ですか? 「インテント URI」メソッドが Firefox でサポートされていないのはなぜですか?

関連リンク: https://developers.google.com/chrome/mobile/docs/intents https://stackoverflow.com/a/3472228/1045941 (スレッドがかなり古いことに注意してください)

4

1 に答える 1

1

1 つのオプションは、次のような非表示の iframe を追加することです。

<iframe src="myscheme://..." style="visibility: hidden"></iframe>

Firefox で動作することがテストされていますが、chrome では動作しません。おそらくユーザー エージェント検出を使用する必要があります。例を次に示します

于 2014-11-26T16:13:24.673 に答える