阅读将JavaScript代码绑定到Android代码的文档记录。
这使您能够使用JavaScript来触发Android代码的执行。
首先您需要在Android上注册Javascript接口,以便您可以从JavaScript触发Android代码。
JAVA
WebView webView = (WebView) findViewById(R.id.webview);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
定义一个方法,在JavaScript被调用时执行您的操作。在此示例中,显示一个Toast提示框。
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文件上传到Web服务器的某个位置。然后将内容传递给Android并相应地解析它。
一个简单的解决方案是使用JSInterface——用于webview与native通信的工具。教程
在JSInterface中传递所需的通知参数,然后使用Android系统通知API生成通知。