代码之家  ›  专栏  ›  技术社区  ›  CtrlAltF2 BoldX

Android WebView推送通知?

  •  8
  • CtrlAltF2 BoldX  · 技术社区  · 7 年前

    我需要发送通知(不一定是 推 Notification API 与上的Android Webview不兼容 MDN . 我看到的其他API似乎是基于 window.notification

    有人知道通过android webview发送通知的API或JS吗?

    我看到 this

    谢谢你的回答!

    2 回复  |  直到 7 年前
        2
  •  3
  •   Black    6 年前

    请阅读文档条目以了解更多信息 Binding JavaScript code to Android code

    首先,您必须注册 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();
        }
    }
    

    您需要更改该部分以显示推送通知。

    <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文件上载到您的Web服务器的某个位置。然后将内容传递给android并进行相应的解析。

        3
  •  3
  •   Rahul Devanavar    6 年前

    相互作用 -将webview与本机进行通信。 tutorial

    在这个JSInterface过程中,输入通知所需的参数,然后使用android系统通知API生成通知。