我需要通过android webview发送一个通知(不一定是 push 通知)。我发现Notification API
与MDN上的Android Webview不兼容。我看到的其他API似乎基于window.notification
。
有人知道通过android webview发送通知的任何API或JS吗?
我看到6个月前的this帖子几乎没有任何活动,只是模糊地提到了火力基地。这会有所帮助吗?
感谢您的回答!
答案 0 :(得分:3)
我没有足够的“声誉”来发表评论,但这对您有用吗?
https://github.com/ashraf-alsamman/android-webview-app-with-push-notification
https://medium.com/shibinco/creating-a-webview-android-app-with-push-notification-7fd48541a913
希望您可以通过以下示例之一使它正常工作
答案 1 :(得分:1)
一个简单的解决方法是使用 JSInterafce -它用于将Webview与本机通信。tutorial
在该JSInterface中,传递所需的通知参数,然后使用android系统通知API生成通知。
答案 2 :(得分:0)
阅读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请求,并检查是否有新的通知要发送,如果为true,则调用android代码以显示消息。
但是,您必须确保只以某种方式显示一次通知...可能要设置一个包含通知ID的cookie并将其设置为true,以便不会再次触发android代码。
例如,您需要以JSON格式将通知作为.json文件提供。您可以将该.json文件上传到Web服务器的某个位置。然后将内容传递给android并进行相应的解析。