簡體   English   中英

Android WebView 推送通知?

[英]Android WebView push notification?

我需要通過 android webview 發送通知(不一定是推送通知)。 我在MDN上看到Notification API與 Android Webview 不兼容。 我看到的其他 API 似乎是基於window.notification的。

有誰知道通過 android webview 發送通知的任何 API 或 JS?

我在 6 個月前看到這篇文章,除了模糊地提到 firebase 之外,基本上沒有任何活動。 那會有幫助嗎?

感謝您的回答!

閱讀將JavaScript 代碼綁定到 Android 代碼的文檔條目。

這允許您使用 javascript 來觸發 android 代碼的執行。

首先,您必須在 android 上注冊Javascript 接口,以便您可以從 javascript 觸發 android 代碼。

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>

我自己沒有嘗試過。 但我會嘗試創建一個 javascript 方法,它會在一定的時間間隔內向服務器發出 ajax 請求,並檢查是否有新的通知要發送,如果為真,則調用 android 代碼來顯示消息。

但是,您必須確保只以某種方式顯示一次通知......也許設置一個包含通知 ID 的 cookie 並將其設置為 true,這樣 android 代碼就不會再次被觸發。

您需要提供通知,例如 JSON 格式的 .json 文件。 你可以將那個.json 文件上傳到你的網絡服務器的某個地方。 然后將內容傳遞給android並進行相應的解析。

一種簡單的解決方法是使用JSInterafce - 將 webview 與本機通信。 教程

在該 JSInterface 傳遞中,通知所需的參數然后使用 android 系統通知 API 生成通知。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM