【问题标题】:Android WebView push notification?Android WebView 推送通知?
【发布时间】:2018-12-31 22:43:47
【问题描述】:

我需要通过 android webview 发送通知(不一定是 push 通知)。我看到Notification APIMDN 上的Android Webview 不兼容。我看到的其他 API 似乎基于 window.notification

有谁知道通过 android webview 发送通知的任何 API 或 JS?

我看到了 6 个月前的 this 帖子,除了含糊地提到了 firebase 之外,基本上没有任何活动。会有帮助吗?

感谢您的回答!

【问题讨论】:

    标签: javascript android html android-webview


    【解决方案1】:
    【解决方案2】:

    阅读Binding JavaScript code to Android code 的文档条目。

    这允许您使用 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并进行相应的解析。

    【讨论】:

    • 这非常有用。谢谢你。此链接developer.android.com/guide/webapps/webview#BindingJavaScript 对于完整的官方文档也很有用。
    • 这是用于推送通知还是仅用于祝酒消息?因为对于任何网站通知,都会在通知中附加一个 URL,该 URL 可以是基于图像的通知
    【解决方案3】:

    一个简单的解决方法使用 JSInterafce - 将 webview 与本地通信。tutorial

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多