私は Web アプリを持っており、Android でアプリをホーム画面に追加する方法を説明するアラートを表示したいと考えています。(「ブックマーク」に追加してから、「ホーム画面に追加」または「ホームのショートカットに追加」)。次に、アプリを開く画面にアイコンが表示されます。
もちろん、アプリがホーム画面に追加されていない場合にのみ、これを表示したい.
誰もこれを行う方法を知っていますか? ご意見ありがとうございます。
私は Web アプリを持っており、Android でアプリをホーム画面に追加する方法を説明するアラートを表示したいと考えています。(「ブックマーク」に追加してから、「ホーム画面に追加」または「ホームのショートカットに追加」)。次に、アプリを開く画面にアイコンが表示されます。
もちろん、アプリがホーム画面に追加されていない場合にのみ、これを表示したい.
誰もこれを行う方法を知っていますか? ご意見ありがとうございます。
はい、できます。
技術的には、Chrome ブラウザー タブで開いているページは、ホーム画面のショートカットが存在するかどうかを直接確認することはできませんが、ページのローカル データ ( localStorage
、IndexedDB) はホーム画面インスタンスとブラウザー タブの間で共有されるため、これを使用して、ホーム画面バージョン。
localStorage
localStorage
(任意のタブからこれを読むことによって)アプリがスタンドアロン ビューの場合 (ホーム画面から起動した場合のみ可能)、CSS メディア クエリ(display-mode: standalone)
が一致します。Javascript では、次を使用して読み取ることができます。
matchMedia('(display-mode: standalone)').matches
(ところで:これに相当する非標準のiOSは ですがnavigator.standalone
、iOSはホーム画面とSafariの間で状態を共有しないため、運が悪いです).
ただし、独自の手順ではなく、Chrome の「プログレッシブ Web アプリ」の基準を満たし、Chrome にプロンプトを表示させることをお勧めします。
まず、デバイス上のアプリのリストを取得します
List<ApplicationInfo> packs = pm.getInstalledApplications(0);
次に、getLaunchIntentForPackage()を使用します
デバイスにインストールされているパッケージのリストを取得したら、それらを繰り返し処理し、各アイテムで getLaunchIntentForPackage() を呼び出します。
有効なインテントが返された場合、それは Launcher に存在します。それ以外の場合、null が返された場合、パッケージは Launcher 画面から起動しません。ホーム画面のショートカットはランチャー アプリのサブセットであることに注意してください。