11

私は Web アプリを持っており、Android でアプリをホーム画面に追加する方法を説明するアラートを表示したいと考えています。(「ブックマーク」に追加してから、「ホーム画面に追加」または「ホームのショートカットに追加」)。次に、アプリを開く画面にアイコンが表示されます。

もちろん、アプリがホーム画面に追加されていない場合にのみ、これを表示したい.

誰もこれを行う方法を知っていますか? ご意見ありがとうございます。

4

5 に答える 5

11

はい、できます。

技術的には、Chrome ブラウザー タブで開いているページは、ホーム画面のショートカットが存在するかどうかを直接確認することはできませんが、ページのローカル データ ( localStorage、IndexedDB) はホーム画面インスタンスとブラウザー タブの間で共有されるため、これを使用して、ホーム画面バージョン。

  1. アプリがホーム画面から実行されているかどうかを検出する
  2. ホーム画面から実行した場合は、この事実をlocalStorage
  3. 利益!localStorage(任意のタブからこれを読むことによって)

アプリがスタンドアロン ビューの場合 (ホーム画面から起動した場合のみ可能)、CSS メディア クエリ(display-mode: standalone)が一致します。Javascript では、次を使用して読み取ることができます。

matchMedia('(display-mode: standalone)').matches

(ところで:これに相当する非標準のiOSは ですがnavigator.standalone、iOSはホーム画面とSafariの間で状態を共有しないため、運が悪いです).

ただし、独自の手順ではなく、Chrome の「プログレッシブ Web アプリ」の基準を満たし、Chrome にプロンプ​​トを表示させることをお勧めします。

于 2016-10-11T20:44:24.283 に答える
-2

まず、デバイス上のアプリのリストを取得します

 List<ApplicationInfo> packs = pm.getInstalledApplications(0);

次に、getLaunchIntentForPackage()を使用します

デバイスにインストールされているパッケージのリストを取得したら、それらを繰り返し処理し、各アイテムで getLaunchIntentForPackage() を呼び出します。

有効なインテントが返された場合、それは Launcher に存在します。それ以外の場合、null が返された場合、パッケージは Launcher 画面から起動しません。ホーム画面のショートカットはランチャー アプリのサブセットであることに注意してください。

于 2013-09-06T08:19:21.063 に答える