我遵循了官方指南,但发现它只是一遍又一遍地注册您的应用程序以获取通知,并且用户无法选择退出。似乎没有办法判断设备是否已注册,因为该getRemoteNotificationStatus
方法在插件的 Android 版本中不可用。我怎样才能得到这些信息?
我想我会将它作为首选项保存在应用程序中,这样我就不必查询任何外部内容,但最新版本的 Android 允许您禁用应用程序外部的通知。这会与我单独的应用内偏好取消注册/冲突吗?
到目前为止我的代码(我正在测试):
(function() {
var pushPrefApply = function() {
app.pushPref(function(pushPref) {
console.log('pushPref', pushPref);
if (!pushPref) {
window.plugins.pushNotification.unregisterDevice(
function() {
console.log('unreg ok', arguments);
},
function() {
console.log('unreg fail', arguments);
}
);
return;
}
window.plugins.pushNotification.registerDevice(
{
projectid: '123456789012',
appid : 'F0000-BAAAA'
},
function(pushToken) {
console.log('reg ok', arguments);
},
function(status) {
console.log('reg fail', arguments);
}
);
});
};
//UI code for changing push preference goes here, calls pushPrefApply
$document.on('appready', function() {
pushPrefApply();
});
})();
$document
不是错字,它已经定义好了。app.pushPref
是偏好获取函数。window.plugins.pushNotification.onDeviceReady
已在其他地方完成deviceready
。appready
是一个综合事件,我在两个事件之后deviceready
触发,另一个事件由本地数据存储库触发。