2013-09-06 5 views
5

Ich habe eine Web-App und auf dem Android möchte ich eine Warnung anzeigen, wie Sie meine App auf dem Startbildschirm hinzufügen. (Fügen Sie es zu "Lesezeichen" hinzu und dann "Zum Startbildschirm hinzufügen" oder "Zu Verknüpfung im Home hinzufügen"). Dann wird auf dem Bildschirm, der meine App öffnet, ein Symbol angezeigt.Überprüfen Sie, ob Web-App auf dem Startbildschirm auf Android hinzugefügt wird

Aber natürlich will ich das nur anzeigen, wenn die App nicht auf dem Startbildschirm hinzugefügt wird.

Weiß jemand, wie man das macht? Jeder Eingang geschätzt, danke.

+0

Dieser Link könnte für Sie interessant sein: https://github.com/w3c/manifest/issues/417. – Marco

Antwort

-1

zuerst erhalten Sie die Liste der Anwendungen auf dem Gerät

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

dann verwenden Sie getLaunchIntentForPackage()

Nachdem Sie nun die Liste der Pakete auf Ihrem Gerät installiert haben, Iterierte durch sie und rufen Sie getLaunchIntentForPackage() für jeden Artikel auf.

Wenn eine gültige Absicht zurückgegeben wird, ist sie im Launcher vorhanden. Wenn Null zurückgegeben wird, wird das Paket nicht vom Launcher-Bildschirm aus gestartet. Beachten Sie, dass Verknüpfungen auf dem Startbildschirm eine Untergruppe der Launcher-Apps sind.

+0

Danke, Ahmed. Werde ich die pm.getInstalledApplications (0) erhalten? von meiner Web-App? Es sieht so aus als wäre es natives Java oder? –

+0

Ich bin mir nicht sicher, wie das geht –

+0

Sie können dies nicht auf einer Webseite tun. – Marco

2

Die kurze Antwort ist: von einer Website können Sie nicht.

Die längere Antwort ist: Von einer Website können Sie möglicherweise einen Hinweis in Chrome erhalten.

Chrome auf Android zwei neue Features 1) Web App Manifest das, was beschreibt aus den home screen and how it should look on the homescreen gestartet werden soll, und 2) Chrome hat jetzt ein beforeinstallprompt Ereignis, das für Web-Anwendungen auslösen, die wir denken, App-like und kann sein auf dem Homescreen installiert.

Es gibt eine Reihe von Kriterien für das Ereignis onbeforeinstallprompt, das es zu einer "ok" Heuristik machen könnte (obwohl ich nicht vermute).

Das Ereignis wird nur ausgelöst, wenn:

  • Die Website ein Manifest hat, ist auf https und hat einen Servicemitarbeiter. (Das kann ziemlich anstrengend sein).
  • Der Benutzer hat sich mehrmals mit der Website beschäftigt (jetzt zweimal innerhalb von mindestens 5 Minuten).
  • Der Benutzer hat Ihre Website nicht bereits zum Startbildschirm hinzugefügt.

Also zusammenfassend ist es komplex und voller False Positives und False Negatives. Wenn Sie jedoch nur feststellen möchten, ob Sie ein Banner anzeigen sollten, um den Benutzer aufzufordern, Ihre Web-App zur Startseite hinzuzufügen, hat Chrome bereits eine Lösung für Sie.

Wir haben auch eine vollständige Palette von samples on our samples site.

2

Ja, Sie können.

Während technisch eine Seite geöffnet in Chrome Browser Registerkarte kann nicht direkt überprüfen, ob ein Startbildschirm Verknüpfung vorhanden ist, die lokalen Daten der Seite (localStorage, IndexedDB) ist zwischen Home-Bildschirm Instanz und Browser-Registerkarten geteilt, so kann dies verwendet werden die Existenz der Home-Screen-Version mitteilen.

  1. erkennen, wenn der App auf dem Startbildschirm
  2. läuft
  3. Wenn es von zu Hause Bildschirm läuft ist, speichern Sie diese Tatsache zu localStorage
  4. Profit! (Durch die von localStorage in jedem Register lesen)

Wenn die App im Standalone-Ansicht ist (was nur möglich ist, wenn sie aus dem Startbildschirm gestartet), die CSS-Medienabfrage (display-mode: standalone) wird übereinstimmen. In Javascript können Sie sie mit lesen:

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

(BTW: die Nicht-Standard-iOS Äquivalent davon ist navigator.standalone, aber iOS nicht Zustand zwischen dem Startbildschirm und Safari teilen, so dass man dort kein Glück).

Ich empfehle jedoch anstelle von benutzerdefinierten Anweisungen, die Chrome-Kriterien für "progressive Web-App" zu erfüllen und Chrome die Eingabeaufforderung für Sie ausführen zu lassen.

0

Ich denke, du kannst es tun. Fügen Sie in der Datei "manifest.json" einfach eine Abfragezeichenfolge zu start_url hinzu und überprüfen Sie in Ihrer JavaScript-Prüfung, ob die Start-URL diese Abfragezeichenfolge enthält. Wenn eine Abfragezeichenfolge gefunden wird, ist yeah app installiert.

Verwandte Themen