我已经创建了带有有效证书的push包,并且使用有效的SSL证书托管在服务器上,但问题是javascript总是在提示用户之前就显示拒绝消息。我正在使用来自苹果教程的java脚本代码和有效的网站push id & webservice url等等。
document.body.onload = function() {
// Ensure that the user can receive Safari Push Notifications.
if ('safari' in window && 'pushNotification' in window.safari) {
var permissionData = window.safari.pushNotification.permission('web.com.example.domain');
checkRemotePermission(permissionData);
}
};
var checkRemotePermission = function (permissionData) {
if (permissionData.permission === 'default') {
// This is a new web service URL and its validity is unknown.
window.safari.pushNotification.requestPermission(
'https://domain.example.com', // The web service URL.
'web.com.example.domain', // The Website Push ID.
{}, // Data that you choose to send to your server to help you identify the user.
checkRemotePermission // The callback function.
);
}
else if (permissionData.permission === 'denied') {
alert('denied');
// The user said no.
}
else if (permissionData.permission === 'granted') {
alert('granted');
// The web service URL is a valid push provider, and the user said yes.
// permissionData.deviceToken is now available to use.
}
};问题是我在javascript中被“拒绝”警告,因为权限被拒绝。问题是它从来没有问过,也从来没有问过。甚至在我的狩猎偏好中也没有。
为什么在没有询问的情况下野生动物园的返回被拒绝了?
发布于 2014-04-14 17:29:44
您能确认您指定的网站推送id和web服务URL是否有效且存在吗?如果它不是一个有效的服务网址或网站推送id,Safari将拒绝它,甚至没有提示。
我实现了从一端到另一端的safari推送,有些事情你应该注意。
我还注意到,苹果并没有为Safari推送提供沙箱环境。这意味着,您将需要注册一个网站推送id的生产和生产前的一个,以便您可以保持他们分开的测试目的。
希望这能有所帮助。
发布于 2014-09-05 07:49:49
您需要定义以下服务器端端点
我建议您分叉这个 github回购,它包含了非常好的文档,这些服务器端端点可以使用.htaccess文件.定义。
https://stackoverflow.com/questions/23007768
复制相似问题