web-dev-qa-db-ja.com

Android WebViewプッシュ通知?

Android webviewを介して通知(必ずしもPush通知ではない)を送信する必要があります。_Notification API_がAndroid Webview on [〜#〜] mdn [〜#〜] と互換性があります。私が見た他のAPIは_window.notification_に基づいているようです。

Android webviewを介して通知を送信するAPIまたはJSを知っていますか?

私は6か月前から this の投稿を見ましたが、firebaseの漠然とした言及以外は基本的に何もしていません。それは役に立ちますか?

ご回答ありがとうございます!

11

コメントを投稿するのに十分な「評判」はありませんが、それはあなたにとって役に立ちますか?

うまくいけば、それらの例の1つから機能させることができます

6
user10864482

1つの簡単な回避策の使用JSInterafce-Webviewをネイティブに通信します。 チュートリアル

そのJSInterfaceパスでは、通知に必要なパラメーターを使用し、Androidシステム通知APIを使用して通知を生成します。

2
Rahul Devanavar

Binding JavaScript code to Android code のドキュメントエントリを読みます。

これにより、javascriptを使用してAndroidコードの実行をトリガーすることができます。

最初に、AndroidでJavascriptインターフェースを登録して、Android javascriptからのコードをトリガーできるようにする必要があります。

Java

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

また、JavaScriptが呼び出された場合にアクションを実行するメソッドを定義します。この例では、トーストを示しています。

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();
    }
}

↑その部分を変更して、代わりにプッシュ通知を表示する必要があります。 ↑

次に、次のようにJavaScriptからAndroidコードをトリガーできます。

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

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

私はそれを自分で試しませんでした。しかし、私は特定の間隔でサーバーにajaxリクエストを送信し、送信する新しい通知があるかどうかを確認し、trueの場合はAndroidコードを呼び出してメッセージを表示する。

ただし、通知を何らかの方法で一度だけ表示することを確認する必要があります...通知IDを含むCookieを設定し、trueに設定して、Androidコードがトリガーされないようにします。再び。

たとえば、JSON形式の.jsonファイルとして通知を提供する必要があります。その.jsonファイルをWebサーバーのどこかにアップロードできます。次に、コンテンツをAndroid=に渡し、それに応じて解析します。

1
Black