我正在尝试检查用户是否为我的应用启用了远程通知,但即使我禁用/卸载我的应用,它也始终返回。
我正在检查此代码:
if UIApplication.shared.isRegisteredForRemoteNotifications == false {
OneSignal.registerForPushNotifications()
print("Notifications is off")
} else {
print("Notifications is on")
}
但这将始终运行:print("Notifications is on")
那么我如何检查用户是否已启用我的应用程序的通知?
答案 0 :(得分:1)
var $radio = $('#theseCodes');
var radioValue = $radio.val();
var radioName = $radio.attr('name');
var $cell = $radio.closest('td');
var $select = $cell.find('select');
$select.detach();
$cell.empty().append('<input type="hidden" name="' + radioName + '" value="' + radioValue + '" />').append($select);
这似乎有效,不确定它是否正确?
答案 1 :(得分:0)
实际上这将始终返回true
,只有在从未询问过远程通知权限的情况下,它才会返回false
。这意味着,一旦您询问了用户,无论他回答了什么,这将始终返回true
。
存在的原因是,当你请求许可时,它会直接注册用户(甚至没有等待他的回答,你可以通过在用户的回答之前设置断点来检查代理)。然后,如果用户拒绝了该许可,则该设备仍将被注册,但是在用户在常规设置中打开通知之前,通知将不会显示。
这不是一个错误,Apple这样做是为了避免dev继续要求权限。因此,实际上无法确定用户是否已接受或拒绝许可:/