web-dev-qa-db-fra.com

Android Notification Push WebView?

Je dois envoyer une notification (pas nécessairement une notification Push ) via une vue Web Android. J'ai vu que le Notification API n'était pas compatible avec Android Webview sur MDN . Les autres API que j'ai vues semblaient être basées sur window.notification.

Quelqu'un connaît-il une API ou un JS qui envoie une notification via une vue Web Android Web?

J'ai vu ce post d'il y a 6 mois avec essentiellement aucune activité sauf une vague mention de firebase. Serait-ce utile?

Merci pour vos réponses!

11
DROP TABLE names

Je n'ai pas assez de "réputation" pour poster un commentaire mais cela pourrait-il vous être utile?

J'espère que vous pouvez le faire fonctionner à partir de l'un de ces exemples

6
user10864482

Une solution de contournement simple JSInterafce - Communiquer la vue Web au natif . tutoriel

Dans cette passe JSInterface, le paramètre souhaité pour la notification, puis utilisez Android API de notification système pour générer la notification.

2
Rahul Devanavar

Lisez l'entrée de documentation pour Binding JavaScript code to Android code .

Cela vous permet d'utiliser javascript pour déclencher l'exécution de Android.

Vous devez d'abord enregistrer l'interface Javascript sur Android, afin de pouvoir déclencher Android code à partir de javascript).

Java

WebView webView = (WebView) findViewById(R.id.webview);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");

Et définissez une méthode qui fait votre action si le javascript est appelé. Dans cet exemple, montrez un toast.

public class WebAppInterface {
    Context mContext;

    /** Instantiate the interface and set the context */
    WebAppInterface(Context c) {
        mContext = c;
    }

    /** Show a toast from the web page */
    @JavascriptInterface
    public void showToast(String toast) {
        Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
    }
}

↑ Vous devez modifier cette partie pour afficher votre notification Push à la place. ↑

Ensuite, vous pouvez déclencher le code Android de javascript comme ceci:

<input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" />

<script type="text/javascript">
    function showAndroidToast(toast) {
        Android.showToast(toast);
    }
</script>

Je ne l'ai pas essayé moi-même. Mais j'essaierais de créer une méthode javascript qui fait une requête ajax à un serveur à certains intervalles et vérifie s'il y a de nouvelles notifications à envoyer et si c'est vrai, alors appelez le code Android pour afficher le message .

Cependant, vous devrez vous assurer de ne montrer la notification qu'une seule fois ... peut-être définir un cookie contenant l'ID de notification et le définir sur true, afin que le code Android ne se déclenche pas) encore.

Vous devrez par exemple fournir les notifications sous forme de fichier .json au format JSON. Vous pouvez télécharger ce fichier .json sur votre serveur Web quelque part. Passez ensuite le contenu à Android et analysez-le en conséquence.

1
Black