sem*_*gay 14 javascript android cordova ibeacon ionic-framework
我正在我的cordova项目中使用Cordova/Phonegap iBeacon插件和ionicframework.当应用程序被杀死时,我正在尝试使用cordova本地通知插件在android和ios上发送本地通知.
这是我的代码:
document.addEventListener("deviceready", onDeviceReady, false);
function didDetermineStateForRegion(pluginResult) {
}
function didStartMonitoringForRegion (pluginResult) {
}
function didExitRegion(pluginResult) {
$cordovaLocalNotification.add({
id: 30244234234,
title: "Good By!",
text: "Hope to see you again."
}).then(function () {
});
}
function didEnterRegion (pluginResult) {
$cordovaLocalNotification.add({
title: "Welcome",
text: "Tap to launch app"
}).then(function () {
});
};
function didRangeBeaconsInRegion (pluginResult) {
}
function onDeviceReady() {
// Now safe to use device APIs
function createBeacon(uuid,nofiyState) {
var uuid = uuid; // mandatory
var identifier = 'estimote'; // mandatory
// throws an error if the parameters are not valid
var beaconRegion = new cordova.plugins.locationManager.BeaconRegion(identifier, uuid);
beaconRegion.notifyEntryStateOnDisplay = true;
return beaconRegion;
}
var delegate = new cordova.plugins.locationManager.Delegate();
delegate.didDetermineStateForRegion = didDetermineStateForRegion;
delegate.didStartMonitoringForRegion = didStartMonitoringForRegion;
delegate.didRangeBeaconsInRegion = didRangeBeaconsInRegion;
delegate.didEnterRegion = didEnterRegion;
delegate.didExitRegion = didExitRegion;
var beaconRegion = createBeacon('02681445-8D1B-4F58-99D4-B25F4B129A58',true);
// var beaconRegionBlue = createBeacon('02681445-8D1B-4F58-99D4-B25F4B129A58',1,,true);
cordova.plugins.locationManager.setDelegate(delegate);
// required in iOS 8+
//cordova.plugins.locationManager.requestWhenInUseAuthorization();
cordova.plugins.locationManager.requestAlwaysAuthorization();
cordova.plugins.locationManager.startMonitoringForRegion(beaconRegion)
.fail(console.error)
.done();
}
Run Code Online (Sandbox Code Playgroud)
cordova插件:
com.unarin.cordova.beacon 3.3.0 "Proximity Beacon Plugin"
de.appplant.cordova.plugin.local-notification 0.8.1 "LocalNotification"
nl.x-services.plugins.socialsharing 4.3.16 "SocialSharing"
org.apache.cordova.console 0.2.13 "Console"
org.apache.cordova.device 0.3.0 "Device"
Run Code Online (Sandbox Code Playgroud)
cordova版本:4.3.0
这适用于ios,即使应用程序被杀死但安卓通知只有在应用程序在后台才会出现.当我从android上的任务管理器中杀死应用程序时我从未见过任何本地通知.
即使app被杀,是否有可能在Android上收到通知?
感谢帮助.
让我们清除一些东西,有些状态会让您感到困惑:
在所有情况下,当您杀死应用程序时(通过长按自定义rom中的后退按钮,或从操作系统中的应用程序菜单强行停止)都处于第三状态,该应用程序只是从内存中删除,没有代码被执行!
在这种情况下,通常要做的是在停止服务后自动重新启动该服务,请检查以下答案,您可以阅读:
强行违反用户意愿运行服务确实是非常糟糕的模式。
有太多的cordova插件可以创建BroadcasteReceiver,但是对您问题的简单回答是:如果应用被杀死,就无法收到通知。
但是您应该考虑一下:如果用户杀死了您的应用程序,则意味着它是有意完成的,因此您不必担心应用程序是否可以正常工作,因为这是用户的问题,而不是开发人员的问题。
| 归档时间: |
|
| 查看次数: |
4348 次 |
| 最近记录: |