【问题标题】:Push doesn't work (Error: Could not get)推送不起作用(错误:无法获取)
【发布时间】:2014-04-25 11:27:03
【问题描述】:

尝试使用 Ratchet 的 push.js,但不起作用。 我在控制台中有什么:

[Error] Error: Could not get: file:///var/mobile/Applications/337585D8-89E1-4810-AB37-0A6DD2DA3A34/Gustav.app/www/booking.html
failure (ratchet.js, line 446)
onreadystatechange (ratchet.js, line 371)

如果你点击链接十次,你就会开始收到这个:

[Error] TypeError: 'undefined' is not an object (evaluating 'cacheMapping[PUSH.id].url')
cachePush (ratchet.js, line 202)
PUSH (ratchet.js, line 392)
touchend (ratchet.js, line 258)

所有这些控制台数据来自真实设备测试 (iOS 7.1),包装器是 Cordova CLI 3.4.1-0.1.0。

文件 booking.html 存在,像这样的原生 safari 失败

[Error] Failed to load resource: The requested URL was not found on this server. (menu.html, line 0)

没有出现。

【问题讨论】:

    标签: ios cordova ratchet ratchet-2 push.js


    【解决方案1】:

    push.js 不支持 file:// 协议。

    Ratchet 使用 XHR 请求在 应用。由于安全问题,现代浏览器阻止 XHR 在本地打开文件时的请求(也就是使用 file:// 协议); 因此,当直接作为文件打开时,Ratchet 不起作用。一种 对此的常见解决方案是简单地从本地提供文件 服务器。实现此目的的一种便捷方法是运行 python -m SimpleHTTPServer 提供当前目录中的文件 给http://localhost:<port>

    另见 this issuethis issue 在 Github 上提交

    这似乎是使用 Cordova 和 Ratchet 的常见问题。

    【讨论】:

    • 谢谢!顺便说一下,这里是链接(github.com/artemave/ratchet/commit/…)提交在棘轮中添加 file:// 支持。
    • @lenyapugachev hm 如果文件 p.不能使用。你知道什么时候会支持 file:// 吗?
    • ajax 请求成功,但对于 iOS 7.1 返回状态码 0。允许失败状态xhr.status === 0 (line 383 : ratchet.js) 安装在设备上时允许页面转换。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    • 2022-01-28
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 2013-08-21
    相关资源
    最近更新 更多