【发布时间】:2018-05-20 21:08:42
【问题描述】:
我正在为我的 Android 应用程序的通知提供程序工作,它使用一个 WebView,它使用 JavaScriptInterface 从远程 Javascript 文件中获取信息,根据从服务器接收到的信息,它会触发我的应用程序发送抬头通知。
所以,我在 onCreate void 中添加了一个 JavaScript 接口:
OnomeWebContainer.addJavascriptInterface(new WebAppInterface(this), "Android");
并创建了 WebAppInterface 类
// Interfacing with Javascript Code
public class WebAppInterface {
Context mContext;
WebAppInterface(Context c) {
mContext = c;
}
@JavascriptInterface
public void showTempHumUnavailableNotification(String toast) {
OnomeTempHumUnavailableNotification();
}
@JavascriptInterface
public void showSecurDudeAlertNotification(String toast) {
OnomeSecurDudeAlertNotification();
}
}
当某个文件在远程服务器上不可用时,JavaScript 文件会触发通知。
function showDHT11Alert() {
$.ajax({
url: 'http://serveraddress/OnomeWeb/resources/data/tmp/onomeDHT11On',
success: function () {
$('#onomenotif_DHT11Unavailable').hide();
},
error: function () {
$('#onomenotif_DHT11Unavailable').show();
showDHT11Toast();
},
});
}
function showDHT11Toast(toast) {
Android.showTempHumUnavailableNotification(toast);
}
即使应用程序在后台,通知提供程序也能正常工作,但显然如果我从最近的应用程序屏幕关闭应用程序,通知提供程序就会停止工作。现在我想让这个 JavaScript 接口在后台服务中工作,即使应用程序已从最近的应用程序中关闭。
后台服务应该是我的问题的最佳解决方案,但是我怎样才能将它与主 WebView 接口呢?这可能吗?
【问题讨论】:
标签: java android service webview